ChatDev IDE进阶技巧:用JavaScript脚本编排多Agent协作,让PromptFlow更聪明
2026/8/28 16:16:37 网站建设 项目流程

ChatDev IDE进阶技巧:用JavaScript脚本编排多Agent协作,让PromptFlow更聪明

【免费下载链接】chatdevChatDev IDE is an tools for building your ai agent, Whether it's NPCs in games or powerful agent tools, you can design what you want for this platform.项目地址: https://gitcode.com/gh_mirrors/cha/chatdev

ChatDev IDE 是一款基于浏览器的 AI Agent 开发工具,通过可视化的 PromptFlow 编排引擎,让你用 JavaScript 脚本轻松编排多 Agent 协作,打造游戏 NPC 或强大的 Agent 工具。本文教你 5 个进阶技巧,让你的 PromptFlow 从“能跑”变得“聪明”。

PromptFlow 是什么:YAML + JavaScript 的双引擎架构

在 ChatDev IDE 里,你的 Agent 本质上是一张有向无环图(DAG):每个节点可以是 Prompt、JavaScript 函数、URL 或文档节点,节点之间通过输入/输出依赖连接,由 PromptFlow 执行引擎按拓扑顺序驱动。

这套编排由三部分构成:

  • YAML 描述层:定义desc(描述)、tips(提示语)、outputs(最终输出引用)和nodes(节点列表)
  • JavaScript 脚本层:任意节点都可以通过func字段挂接一段 JS 逻辑
  • 可视化层:YAML 一改,右侧画布实时刷新,执行到哪个节点,哪个节点就会高亮变色

可视化刷新逻辑可以在 PromptFlow.tsx 中看到,而真正驱动每个节点执行的入口是 ConversationPanel.tsx 中的promptflowSubmit方法——它把 YAML、提示词库和用户输入一起交给执行引擎。

技巧一:用 roles 字段定义多 Agent 协作流水线

想让多个 Agent 分工协作,最直观的方式就是在 YAML 里声明roles。ChatDev 内置的默认流程就是一个教科书级的多 Agent 协作示例:从首席产品官(拆解需求)→技术官(设计方案)→程序员(写代码)→代码评审员(审查修改),一路传递到最终输出节点。

这段默认流水线的完整定义存放在提示词库 chatdev_gpts_all.json 中,你可以直接参考它的roles结构来组织自己的团队。

💡进阶建议:角色数量不是越多越好。每个 role 都会触发一次 LLM 调用,3~5 个职责清晰的 Agent 通常是效率和成本的最佳平衡点。

技巧二:给节点挂接 JavaScript 函数(func 字段)

这是让 PromptFlow 变聪明的核心能力:在节点的source里写上func: 函数名,这个节点就不再是纯 Prompt 调用,而是可以执行任意 JS 逻辑——解析网页、抽取数据、拼装参数,统统可以。

以“Chat With Twitter”这个内置 Agent 为例,它先用type: url拉取 RSS 数据,再用 JS 函数Func_twitter做清洗,最后才交给 LLM 总结:

nodes: - name: get_twitter type: url source: code: "https://rsshub.app/rattibha/user/OpenAI" func: Func_twitter inputs: task: ${inputs.input_text} - name: ask_twitter source: path: Planning_Prompt_Twitter inputs: info: ${get_twitter.output} task: ${inputs.input_text}

更妙的是,ChatDev 为 JS 节点准备了完整的执行上下文:

  • node代表当前节点对象,node.output是待处理内容,你还可以往节点对象上挂载任意附加字段
  • 已预装jQueryReadability库,网页正文抽取开箱即用
  • 完整模板见提示词库中的Action_Editor_Generate_Prompt_JS(chatdev_gpts_all.json)

技巧三:用 ${} 引用实现节点间数据传递

PromptFlow 里所有节点都可以通过${节点名.output}拿到上游结果,通过${inputs.input_text}拿到用户输入。这就是 DAG 的数据流。

常用的节点类型:

节点类型说明典型用途
无 type(默认)Prompt 节点,由 LLM 执行推理、生成、总结
type: url抓取网页并由 JS 函数处理获取 API / RSS 数据
type: doc加载文档(如 PDF)文档问答、知识库检索

一个典型的“PDF 问答”流程:load_the_pdf(doc 节点加载文档)→chat_with_pdf(Prompt 节点基于文档内容回答),完整定义可参考 chatdev_gpts_all.json。

技巧四:让 AI 替你写 YAML 和 JavaScript

自己写 YAML 有门槛?ChatDev 内置了两个“元 Agent”:

  • Action_YAML_Generate_Yaml:输入一句需求(如“帮我做一个竞品分析 Agent”),直接生成完整可用的 YAML 流程
  • Action_YAML_Generate_Prompt:帮你生成节点对应的 JavaScript 代码

这两个“AI 写 AI 配置”的能力由 ConversationPanel.tsx 自动切换执行,在编辑器开启“自动生成”后,你的输入会被先送入生成流程,产出结果直接回填到 YAML 编辑器中。

配合编辑器的 YAML 语法高亮和自动补全(NPC 名称与提示词库都会自动提示),迭代效率非常高。

技巧五:从 Agent 社区导入优秀 Agent,站在巨人肩膀上

不想从零开始?ChatDev 提供Agent Community(Agent 社区),可以直接导入他人分享的优秀 Agent;你也可以把自己编排好的流程一键导出为 JSON 文件(包含 Prompt、JS 函数和 YAML),分享给其他设备。

本地提示词与 Prompt 的管理逻辑在 prompts.ts 中实现,导入导出相关代码见 export.ts。在地图模式下,你还可以用 GameModeView.tsx 对应的游戏窗口,把你的 Agent 部署成 AI 小镇里可交互的 NPC——

常见问题速查

  • YAML 改了画布没更新?检查缩进和${}引用是否写错,YAML 语法错误会显示在画布下方,处理逻辑见 PromptFlow.tsx
  • 想调试某个节点的输出?双击画布中的节点即可打开右侧 Prompt 编辑器,执行过程中节点会实时高亮
  • 想限制流程走向?DAG 结构天然保证无环,用outputs.reference指向最终节点即可控制产出
  • JS 里能用什么?标准 JavaScript + jQuery + Readability,node.output是主输入

小结

掌握这 5 个技巧,你的 PromptFlow 就具备了完整的进阶能力:roles 组织多 Agent 分工 → func 注入 JavaScript 逻辑 → ${} 串联数据流 → AI 自动生成配置 → 社区共享加速启动。ChatDev IDE 把提示词工程从“写一段话”升级成了“编排一个系统”,这正是构建下一代 AI Agent 的正确姿势。🚀

【免费下载链接】chatdevChatDev IDE is an tools for building your ai agent, Whether it's NPCs in games or powerful agent tools, you can design what you want for this platform.项目地址: https://gitcode.com/gh_mirrors/cha/chatdev

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询