AI Agent思考过程可视化直播:streamYourClaw架构与部署实战
1. 项目概述:一个让AI思考过程“直播”出来的开源系统
最近在捣鼓AI Agent,发现一个挺有意思的事儿:我们能看到Agent的最终输出,但它内部的“思考”过程——比如它怎么拆解任务、如何决策、遇到了什么问题——对用户来说基本是个黑盒。这就像看魔术表演,只看到了兔子从帽子里出来,却不知道魔术师是怎么准备的。对于开发者来说,调试和优化Agent变得很依赖日志;对于普通观众,理解AI的工作方式就更难了。
所以,当看到streamYourClaw这个项目时,我眼前一亮。它的核心想法非常直接:把AI Agent(特别是OpenClaw)执行任务的完整思考过程,通过TikTok直播实时地、可视化地展示出来。这不仅仅是把日志打印到屏幕上,而是构建了一套完整的直播系统,包含一个永不停止的“监工”Agent(Supervisor)、一个实时渲染的前端看板,以及对接OBS和直播平台的桥梁。
简单来说,你可以把它想象成一个给AI用的“直播推流软件”。你给AI一个任务,比如“写一首关于春天的诗”,然后启动streamYourClaw。系统会开始工作,Supervisor Agent会规划步骤,调用OpenClaw(或其他执行Agent)去执行,而每一步的“内心戏”——“用户要写诗,我先理解主题‘春天’”、“需要押韵,搜索常见意象”、“生成第一句,检查平仄”——都会变成可视化的思维导图、状态动画和文字日志,并通过网页推流到OBS,最终呈现在TikTok直播间里。观众看到的不再是一个冷冰冰的聊天框,而是一个动态的、有逻辑的思考图谱。
这个项目适合几类人:一是AI应用开发者,想给自己的Agent增加透明度和可解释性,或者做技术演示;二是内容创作者,希望用这种新颖的“AI过程直播”形式吸引观众;三是技术爱好者,想学习如何用WebSocket、Redis和Agent编排构建一个实时系统。接下来,我会结合我的部署和测试经验,拆解它的架构、手把手带你跑起来,并分享一些实际使用中遇到的“坑”和技巧。
2. 核心架构与设计思路拆解
要理解streamYourClaw,不能只看代码,得先明白它要解决的核心矛盾:AI的异步、长时间运行过程与直播所需的实时、稳定数据流之间的矛盾。传统的日志是滞后的、文本的,而直播需要的是连续的、视觉化的信息。项目通过一个清晰的三层架构巧妙地解决了这个问题。
2.1 整体架构:生产者、中枢与消费者
项目的架构图已经概括得很清楚,我们可以把它理解为一条高效的数据流水线:
生产者层 (Agent Workers):这是干活的“车间”。核心是两个Agent:
- Supervisor (监工Agent):这是大脑。它不直接执行具体任务,而是负责宏观规划。比如,收到“写诗”任务后,它会将其分解为“确定主题”、“生成意象”、“创作诗句”、“润色修改”等子任务。它持续监控着整个流程,决定下一步是继续、重试还是失败,并给出反馈。它的“永不停止”特性是关键,意味着它在一个循环中持续监听任务队列,实现了7x24小时的任务处理能力。
- OpenClaw (执行Agent):这是双手。负责执行Supervisor分配的具体子任务。在项目当前版本中,它处于“模拟模式”,会生成模拟的思考步骤和结果,这是为了方便演示和社区贡献。其接口已经预留好,可以无缝替换为真实的OpenClaw或其他AI执行单元。
这两个Agent之间通过Redis Streams进行通信。Redis Streams是一种高性能的消息队列数据结构,非常适合这种生产-消费模型。Supervisor把子任务“发布”到Stream,OpenClaw“订阅”并消费执行,再把结果“发布”回去。这种解耦方式让各个部分可以独立开发、部署和扩展。
中枢层 (Backend Service):这是项目的“中央调度室”,基于FastAPI构建。它包含几个核心模块:
- State Engine (状态引擎):这是最核心的调度器。它管理着整个系统的任务生命周期,从创建、分配到完成或失败。它同时监听来自Agent Workers的消息(通过Redis),并将系统的整体状态(如当前任务、Agent状态、进度)进行整合。
- Agent Orchestrator (Agent编排器):负责加载、注册和管理所有可插拔的Agent模块。如果你想增加一个专门处理图片的Agent,在这里注册即可。
- WebSocket Gateway (WebSocket网关):这是连接后端状态和前端展示的实时桥梁。State Engine一旦有状态更新,就会通过这个网关,主动、即时地推送给所有连接的网页客户端。这是实现“直播”效果的技术基石,避免了网页频繁轮询的低效。
消费者层 (Viewer Layer):这是观众看到的“舞台”。
- Frontend Web (前端网页):一个特制的网页,通过WebSocket连接到后端。它接收实时数据,并将其渲染成三种主要视觉元素:动态更新的思维导图、代表不同状态(思考、执行、成功、错误)的动画视频、以及滚动的思考日志文本。
- OBS Studio:作为专业的直播推流软件,OBS通过添加“浏览器源”的方式,将这个前端网页作为一个画面源捕获进来。你可以调整布局、添加滤镜或叠加其他元素(如摄像头画面)。
- TikTok Live:最终的目的地。OBS将整合好的画面和音频推流到TikTok的直播服务器,观众就能在直播间里看到AI的思考过程了。
设计亮点:这套架构的巧妙之处在于,它将复杂的AI异步处理与实时视频流的需求进行了清晰的分层和解耦。Agent层专心处理AI逻辑,后端层专心做状态管理和消息路由,前端层专心做可视化呈现。每一层都可以用最合适的技术栈来实现,并通过定义良好的接口(Redis Streams, WebSocket)进行通信,保证了系统的可维护性和可扩展性。
2.2 关键技术选型解析
为什么是这些技术?每个选择背后都有其考量:
- FastAPI:作为后端框架,它轻量、高性能,并且原生支持异步操作,这对于需要处理大量并发WebSocket连接和后台任务的直播系统至关重要。其自动生成的API文档也极大方便了开发者。
- Redis with Streams:Redis本身是内存数据库,速度极快。Streams数据结构提供了消息持久化、消费者组等特性,完美契合了多个Agent之间需要可靠任务传递的场景。即使某个Agent暂时挂掉,任务也不会丢失,重启后可以继续处理。
- WebSocket:这是实现前端实时更新的唯一选择。相比HTTP轮询(低效、延迟高)或长轮询(复杂),WebSocket提供了全双工、低延迟的通信通道,状态引擎一旦有更新,毫秒级内就能推送到网页上。
- OBS + 浏览器源:这是一个非常务实且强大的选择。OBS是免费、强大、行业标准的直播软件,支持各种平台推流。“浏览器源”功能允许它将任何网页作为视频源,这意味着我们的可视化前端可以用最熟悉的Web技术(HTML/CSS/JS)来开发,无需涉及复杂的原生图形渲染,极大地降低了开发门槛。
3. 从零开始部署与实操指南
理论讲完了,我们来点实际的。下面是我在本地Ubuntu 20.04和Windows 11上均成功部署的详细步骤,我会把可能遇到的坑提前标出来。
3.1 环境准备与依赖安装
首先,确保你的系统满足最低要求:
# 1. 检查Python版本,需要3.10或以上 python3 --version # 2. 安装或升级pip python3 -m pip install --upgrade pip # 3. 安装Git(如果尚未安装) # Ubuntu/Debian: sudo apt update && sudo apt install -y git # Windows: 从 https://git-scm.com/ 下载安装接下来,获取项目代码并搭建Python环境。我强烈建议使用虚拟环境来隔离依赖,避免污染系统环境。
# 克隆项目代码 git clone https://github.com/TashanGKD/streamYourClaw.git cd streamYourClaw # 创建并激活虚拟环境(以venv为例) # Linux/macOS: python3 -m venv venv source venv/bin/activate # Windows: python -m venv venv venv\Scripts\activate # 安装项目依赖(包含开发依赖) # 注意:项目使用 `-e` 参数进行可编辑安装,方便修改代码 pip install -e ".[dev]"实操心得:安装过程中如果遇到某些包(比如
uvloop或cryptography)编译失败,通常是缺少系统级的编译工具或库。在Ubuntu上,可以尝试sudo apt install -y build-essential python3-dev libssl-dev。在Windows上,可能需要安装Visual Studio Build Tools。如果网络问题导致下载慢,可以为pip配置国内镜像源,例如pip install -e ".[dev]" -i https://pypi.tuna.tsinghua.edu.cn/simple。
3.2 Redis服务的启动与配置
streamYourClaw使用Redis作为消息总线,因此必须运行一个Redis服务。最快捷的方式是使用Docker。
# 使用Docker运行一个Redis容器 docker run -d --name redis-streamyourclaw -p 6379:6379 redis:alpine运行后,你可以用docker ps命令检查容器是否正常运行。如果看到redis-streamyourclaw的容器状态为Up,就说明成功了。
如果你不想或不能使用Docker,也可以从官网下载Redis并本地安装启动,确保服务运行在默认的6379端口。
注意事项:生产环境部署时,这个Redis容器没有设置密码,且数据是临时的(容器删除数据即丢失)。对于长期运行或公开访问的服务,务必通过Docker的
-v参数挂载数据卷进行持久化,并通过--requirepass参数或修改配置文件来设置访问密码,例如:docker run -d -p 6379:6379 -v ./redis_data:/data redis:alpine redis-server --requirepass your_strong_password。
3.3 后端服务的启动与测试
Redis就绪后,我们就可以启动核心的后端服务了。
# 进入后端目录 cd backend # 使用uvicorn启动FastAPI应用 # --reload 参数用于开发环境,代码修改后会自动重启 # --port 指定服务端口,默认为8000 uvicorn app.main:app --reload --port 8000如果一切顺利,终端会输出类似以下信息,表明服务已启动:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [12345] using WatchFiles INFO: Started server process [12346] INFO: Waiting for application startup. INFO: Application startup complete.现在,打开你的浏览器,访问http://localhost:8000。你应该能看到streamYourClaw的前端界面。同时,可以访问http://localhost:8000/docs查看自动生成的交互式API文档,这是FastAPI的一大特色,非常方便进行接口调试。
常见问题排查:
- 错误:Address already in use:端口8000被占用。可以换一个端口,如
--port 8001,或者找出占用进程并关闭它(lsof -i:8000或netstat -ano | findstr :8000)。- 错误:Redis连接失败:检查Redis容器是否在运行(
docker ps),并确认后端配置的Redis地址(默认redis://localhost:6379/0)是否正确。如果Redis运行在Docker Toolbox或远程服务器上,localhost可能需要替换为具体的IP地址。- 前端页面空白或无法连接WebSocket:打开浏览器开发者工具(F12),查看“网络”(Network)或“控制台”(Console)标签页是否有错误。很可能是WebSocket连接失败,检查后端服务是否正常运行,以及前端代码中WebSocket连接的地址(
ws://localhost:8000/ws)是否正确。
3.4 配置OBS与TikTok直播推流
这是将可视化画面推向直播间的最后一步。
- 打开OBS Studio,在“来源”面板点击“+”号,选择“浏览器”。
- 在弹出的对话框中,为这个源起个名字,比如“AI Agent Dashboard”。
- 关键设置:
- URL:填入
http://localhost:8000(如果你的后端运行在其他机器或端口,需相应修改)。 - 宽度/高度:设置为
1080x1920。这是为了适配TikTok直播常用的9:16竖屏比例。如果希望是横屏,可以设为1920x1080。 - 勾选“关闭源可见时刷新”(Shutdown source when not visible),这可以节省资源。
- 点击“确定”。
- URL:填入
- 在OBS画布上,你可以拖动和缩放这个浏览器源,调整到合适的位置和大小。
- 配置TikTok直播:
- 在TikTok创作者中心或直播伴侣中,开始直播,获取TikTok提供的服务器地址和串流密钥。
- 回到OBS,点击底部“设置”->“推流”。
- 服务选择“自定义...”。
- 将TikTok提供的服务器地址和串流密钥分别填入“服务器”和“串流密钥”栏。
- 点击“确定”。
- 点击OBS主界面右下角的“开始推流”。此时,OBS就会将包含AI Agent可视化画面的场景,实时推送到你的TikTok直播间了。
重要技巧:在正式直播前,务必使用OBS的“预览推流”功能或创建一个私密的测试直播,检查画面是否清晰、流畅,WebSocket数据是否正常更新(思维导图、日志在动)。同时,调整OBS的输出设置(设置->输出),根据你的网络上传带宽选择合适的码率(例如,1080p竖屏,建议码率在3000-6000 Kbps之间),以平衡画质和流畅度。
4. 核心功能模块深度解析
系统跑起来了,我们再来深入看看它的几个核心功能模块是怎么工作的,以及如何定制它们。
4.1 状态引擎:系统的心跳与调度器
State Engine是后端服务的绝对核心,你可以把它理解为一个复杂的“状态机”。它维护着整个系统的当前快照。我通过阅读源码和添加日志,梳理出它的主要工作流程:
- 任务注入:当通过
POST /api/task接口提交一个新任务(例如{"goal": "写一首关于夏天的五言绝句"})时,状态引擎会创建一个唯一的任务ID,并初始化任务状态为PENDING。 - 任务派发:状态引擎将任务信息封装成标准格式的消息,发布到Redis的一个特定Stream(比如
task_queue)中。这相当于把任务丢进了“待办事项”列表。 - 监听与更新:状态引擎同时订阅多个Redis Stream,包括来自Supervisor的规划结果、来自OpenClaw的执行结果和日志。一旦收到消息,它就根据消息类型更新内部状态:
- 收到“子任务创建”消息 -> 更新思维导图节点。
- 收到“执行开始”消息 -> 将对应节点状态改为
RUNNING,并触发前端播放“思考中”动画。 - 收到“执行成功/失败”消息 -> 更新节点状态,记录结果,可能触发重试或后续步骤。
- 状态广播:任何状态变更都会触发一个广播事件。状态引擎会收集当前所有任务的聚合状态(哪个在运行、哪个已完成、整体进度百分比等),通过WebSocket网关的
state:broadcast事件,主动发送给所有已连接的网页客户端。这就是前端界面能实时更新的原因。
扩展思路:默认的状态引擎可能比较简单。在实际应用中,你可能需要增强它,比如加入任务优先级队列、设置任务超时与重试策略、实现状态持久化(定期将状态保存到数据库,防止服务重启后丢失)等功能。由于架构是插件化的,你完全可以继承基础的
StateEngine类,重写相关方法来实现这些高级特性。
4.2 Supervisor与OpenClaw:AI工作流的双核驱动
这是AI逻辑发生的地方。虽然项目目前用模拟模式演示,但理解其设计模式对集成真实AI模型至关重要。
Supervisor Agent:它通常是一个更强大的LLM(如GPT-4)。它的工作流是循环的:
- 拉取任务:从Redis Stream中获取下一个待处理的主任务或上级子任务。
- 任务分解:利用LLM的能力,将复杂任务分解为一系列顺序或并行的、可执行的子任务。例如,“开发一个网站”可能被分解为“设计数据库Schema”、“编写后端API”、“制作前端页面”。
- 发布子任务:将子任务发布到执行队列(另一个Redis Stream)。
- 监督与评审:监听执行结果队列。当OpenClaw完成一个子任务后,Supervisor会评审其结果:质量是否合格?是否符合预期?如果合格,则标记该子任务完成,并决定启动下一个子任务;如果不合格,则可能发布一个“修正”任务或直接标记失败。
- 循环与反馈:这个过程持续循环,直到所有子任务完成或主任务被标记为失败。同时,Supervisor可以将整个过程中的经验和反馈,提炼成提示词优化或规则,用于改进未来的任务分解。
OpenClaw (Executor Agent):它是一个执行单元。其工作模式更直接:
- 监听队列:持续监听由Supervisor发布的子任务队列。
- 执行任务:根据任务描述调用相应的工具或API。这可以是调用一个代码解释器来运行脚本、调用搜索引擎API获取信息、调用图像生成模型画图等等。
- 记录过程:在执行过程中,生成详细的“思考”日志(例如:“我正在调用XX API,参数是...”、“收到响应,开始解析数据...”)。
- 发布结果:将执行结果(成功数据或错误信息)和过程日志,发布到结果反馈队列,供Supervisor消费。
集成真实模型的实操:要连接真实的LLM(比如OpenAI API或本地部署的Ollama),你需要修改Agent的初始化部分。通常是在Agent的
__init__方法中,将模拟的“思考”和“回复”替换为真正的API调用。你需要关注项目的backend/app/agents/base_agent.py和具体Agent的实现,在其中注入你的LLM客户端。切记妥善保管API密钥,务必通过环境变量或配置文件读取,不要硬编码在代码中。
4.3 前端可视化:将数据流变为视觉流
前端虽然看起来是一个网页,但它是连接数据与观众感官的关键。其核心是三个可视化组件与WebSocket的紧密交互。
- 思维导图:通常使用像
D3.js或ECharts这样的库来动态渲染。当收到mindmap:broadcast事件时,前端会解析数据,更新节点(添加、删除、更新状态)。节点状态常用颜色区分:灰色(待执行)、蓝色(执行中)、绿色(成功)、红色(失败)。这种层级展开的动画效果,能直观展示任务的分解和推进过程。 - 状态视频:这是提升观赏性的巧思。在
frontend/assets/videos/目录下,存放着代表不同状态的MP4短视频(如thinking.mp4,executing.mp4,success.mp4,error.mp4)。当收到state:broadcast事件,且某个Agent状态改变时,前端会根据meta.json中的配置,切换到对应的视频并循环播放。比如OpenClaw进入“执行”状态,画面就会播放一段代码快速滚动的动画。 - 思考日志:一个简单的滚动文本框。当收到
log:broadcast事件时,将新的日志条目(带有时间戳和Agent名称)追加到文本框顶部。通过CSS设置固定高度和overflow-y: auto,实现自动滚动,让观众像看电影字幕一样阅读AI的“内心独白”。
自定义主题与视频:这是社区贡献的主要入口之一。如果你想更换UI风格,可以在
frontend/css/themes/下新建一个CSS文件,修改颜色、字体、布局等。如果你想贡献新的状态视频,只需制作一段MP4(建议时长3-10秒,循环播放无违和感,分辨率与画布匹配),放入assets/videos/,然后在meta.json中注册这个视频文件与某个状态名的映射关系即可。这种设计使得视觉效果的更新完全独立于核心逻辑。
5. 常见问题、故障排查与性能调优实录
在实际部署和运行streamYourClaw的过程中,我遇到了一些典型问题。这里整理成排查清单,希望能帮你快速定位。
5.1 部署与连接问题
| 问题现象 | 可能原因 | 排查步骤与解决方案 |
|---|---|---|
| 前端页面无法打开 (localhost:8000) | 1. 后端服务未启动。 2. 防火墙/安全组阻止端口。 3. 服务绑定到其他IP。 | 1. 检查终端,确认uvicorn进程是否在运行,有无报错。2. 尝试 curl http://localhost:8000/api/health,看是否返回{"status":"ok"}。3. 检查 uvicorn启动命令中的--host参数,如果是0.0.0.0则可用本机IP访问。 |
| 前端页面打开但一片空白,控制台报WebSocket错误 | 1. WebSocket连接地址错误。 2. 后端WebSocket服务未正常启动。 3. 代理或网络问题。 | 1. 打开浏览器开发者工具(F12) -> “网络”(Network) -> WS/WebSocket,查看连接状态和地址。应为ws://[你的后端地址]:8000/ws。2. 检查后端日志,确认WebSocket路由已加载且无错误。 3. 如果是通过Nginx等反向代理,需确保其正确配置了WebSocket代理( proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";)。 |
| OBS中浏览器源显示“无法连接”或空白 | 1. OBS无法访问后端地址。 2. 后端服务仅绑定到 127.0.0.1。3. 跨域问题(如果前端与后端分离部署)。 | 1. 在OBS所在机器的浏览器中直接访问前端URL,看是否能打开。 2. 启动后端时使用 --host 0.0.0.0使其监听所有网络接口。3. 检查后端CORS配置(FastAPI中通过 CORSMiddleware设置),允许OBS或前端所在域。 |
| 任务提交后无反应,Agent不工作 | 1. Redis连接失败。 2. Agent Worker进程未启动。 3. 任务队列名称不匹配。 | 1. 检查后端日志,看是否有Redis连接错误。用redis-cli ping测试Redis服务。2. 确认是否启动了Agent Worker(项目可能有独立的启动脚本,如 python -m app.agents.supervisor)。3. 检查State Engine和Agent代码中订阅和发布的Redis Stream key是否一致。 |
5.2 运行与性能问题
| 问题现象 | 可能原因 | 排查步骤与解决方案 |
|---|---|---|
| 直播画面卡顿,状态更新延迟高 | 1. 网络带宽不足(上行)。 2. OBS编码设置过高。 3. 前端页面性能问题(如思维导图节点过多)。 4. 后端处理瓶颈。 | 1. 测试网络上行速度。降低OBS输出码率(如从6000Kbps降到2500Kbps)。 2. 在OBS设置中,尝试使用硬件编码(如NVENC)而非x264软件编码,能大幅降低CPU占用。 3. 优化前端代码,对思维导图进行节点数量限制或虚拟滚动。 4. 监控后端服务器CPU/内存,检查是否有慢查询或阻塞操作。考虑将WebSocket广播改为异步非阻塞。 |
| WebSocket连接频繁断开重连 | 1. 网络不稳定。 2. 后端服务重启或崩溃。 3. 防火墙/负载均衡器会话超时。 | 1. 在前端代码中增加WebSocket重连逻辑,并设置指数退避。 2. 检查后端服务稳定性,查看日志是否有异常崩溃。 3. 如果经过代理,调整代理的WebSocket超时时间(如Nginx的 proxy_read_timeout)。 |
| Redis内存使用持续增长 | 1. Stream消息未被消费确认。 2. 没有设置Stream的容量上限或淘汰策略。 | 1. 确认Agent Worker正常运行并正确进行了消息确认(XACK)。 2. 在创建Redis Stream时,使用 MAXLEN参数限制历史消息长度,例如XADD task_queue MAXLEN ~ 1000 * field value,只保留大约1000条最新消息。定期清理旧数据。 |
| Supervisor Agent响应慢 | 1. 调用的LLM API延迟高。 2. 任务分解过于复杂。 3. 网络延迟。 | 1. 为LLM API调用设置合理的超时时间(如30秒),并实现异步调用,避免阻塞主线程。 2. 优化提示词(Prompt),让Supervisor的输出更简洁、结构化。 3. 考虑使用更快的模型或在本地部署轻量级LLM。对于简单任务,可以引入缓存机制,避免重复分析相似任务。 |
5.3 安全与生产环境考量
在本地玩玩没问题,但如果想长期运行或对外服务,安全是头等大事。
- API密钥管理:绝对不要将LLM API密钥、数据库密码等敏感信息写在代码里。必须使用环境变量或
.env文件(通过python-dotenv读取),并确保.env文件被添加到.gitignore中。 - Redis安全:如前所述,为Redis设置强密码,并考虑将服务端口(6379)不直接暴露在公网,而是通过SSH隧道或置于内部网络。
- 后端服务暴露:开发时用的
--reload和--host 0.0.0.0不适合生产。生产环境应使用:- Gunicorn/Uvicorn Workers:通过Gunicorn管理多个Uvicorn工作进程,提升并发能力。
gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 - 反向代理:使用Nginx或Apache作为反向代理,处理静态文件、SSL/TLS加密(HTTPS)、负载均衡和基本的速率限制,保护后端服务。
- 关闭调试模式:设置环境变量
DEBUG=false,避免泄露堆栈跟踪等敏感信息。
- Gunicorn/Uvicorn Workers:通过Gunicorn管理多个Uvicorn工作进程,提升并发能力。
- 前端资源优化:状态视频文件可能较大。生产环境中,应考虑将这些静态资源托管在CDN上,以减轻后端服务器压力并加速全球访问。
streamYourClaw项目提供了一个极具创意的框架,将AI的“黑盒”过程变成了可观看的“直播秀”。从技术上看,它结合了现代Web实时通信、消息队列和AI Agent编排,是一个很好的全栈学习项目。从应用上看,它为AI可解释性、教育演示和新型内容创作打开了新思路。我在集成真实AI模型时,发现其插件化设计确实让替换和扩展变得很方便。最大的挑战可能在于如何设计出既准确又有观赏性的Agent“思考”表达,以及如何优化整个流水线的延迟,让直播体验更加流畅。如果你也对这个方向感兴趣,不妨克隆代码,从贡献一个有趣的状态视频或一个简单的自定义Agent开始,亲身参与到这个“直播AI思考”的社区建设中来。
