ChatDev 2.0 Multi-Agent Team

Polar Sponsor
爱发电 赞助
.NET 9.0

通过本地API(端口6400)调用ChatDev能力单元(工作流)。适用于用户需要专业代理工作流的场景,如数据可视化(从CSV)...

ChatDev 能力单位

功能概述

ChatDev 能力单位是一项面向实际任务的技能,主要用于能力单位代表能力单位;您可以浏览可用的设备, 检查;

核心要点

  • 需要的参数, 运行这些参数, 或上传新的参数;
  • 当需要时使用这些终点;
  • 请输入 a。

使用与执行

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

ChatDev 能力单元(Ability Units)

能力单元代表可复用的功能模块。你可以浏览当前可用的能力单元、查看其所需参数、执行它们,或上传新的能力单元。当需要通过本地 API 调用预定义的能力单元(例如:论文评审、数据可视化)时,请使用以下接口。

通过本地 API 运行能力单元,并从 JSON 响应中提取并返回 final_message 字段值。

API 接口列表

  1. 浏览能力单元
  1. 获取能力单元原始内容
  • 方法:GET
  • URL:http://127.0.0.1:6400/api/workflows//get
  • 用途:获取指定能力单元 YAML 文件的原始内容。
  • 示例:
    curl --noproxy 127.0.0.1 -v 
      http://127.0.0.1:6400/api/workflows/test.yaml/get
    
  1. 获取能力单元参数定义
  1. 运行能力单元
  • 方法:POST

  • URL:http://127.0.0.1:6400/api/workflow/run

  • Content-Type:application/json

  • SSE 支持:设置请求头 Accept: text/event-stream 可启用事件流(支持 startedlogcompletederror 等事件)。若省略该请求头,则返回标准 JSON 响应。

  • 输出处理:解析响应 JSON,提取并返回 final_message 字段;若缺失该字段,则视为失败,需报告错误并包含任意 error 字段。获取到 output_dir 后,请将其移动至你的工作目录(workspace)中。

  • 当前可用能力单元:

    1. 论文评审(Paper Review)
    • yaml_file:yaml_instance/paper_review.yaml
    • task_prompt:arXiv URL / ID 或论文标题。
    • 用途:自动获取论文全文,并提供技术性与写作层面的综合评审意见。
    • 示例:
      curl --noproxy 127.0.0.1 -v -X POST http://127.0.0.1:6400/api/workflow/run 
        -H "Content-Type: application/json" 
        -H "Accept: text/event-stream" 
        -d '{
          "yaml_file": "yaml_instance/paper_review.yaml",
          "task_prompt": "https://arxiv.org/abs/1706.03762"
        }'
      
    1. 数据可视化(Data Visualization)
    • yaml_file:yaml_instance/data_visualization_basic.yaml
    • task_prompt:数据集描述 + 分析目标。
    • attachments:CSV 文件的绝对路径数组。
    • 用途:对数据进行概览分析、清洗、规划 4–6 张图表,并迭代优化可视化结果。
    • 示例:
      curl --noproxy 127.0.0.1 -v -X POST http://127.0.0.1:6400/api/workflow/run 
        -H "Content-Type: application/json" 
        -d '{
          "yaml_file": "yaml_instance/data_visualization_basic.yaml",
          "task_prompt": "please analyze and visualize the data",
           "attachments": ["/Users/yufan/Projects/bugfix/ChatDev/sample_sales.csv"]
        }'
      
  1. 上传能力单元
  • 方法:POST
  • URL:http://127.0.0.1:6400/api/workflows/upload/content
  • Content-Type:application/json
  • 格式说明:filename 必须以 .yaml 结尾;content 必须为合法 YAML 字符串,且必须包含 versionvarsgraph 字段;其中 graph 需包含 idstartnodesedges(结构参见下方示例)。
  • 提示:若反复上传失败并提示格式错误,建议先调用“获取能力单元原始内容”接口,检查已有能力单元的实际结构,再依样复制其格式。
  • 示例:
    curl --noproxy 127.0.0.1 -v -X POST 
      http://127.0.0.1:6400/api/workflows/upload/content 
      -H "Content-Type: application/json" 
      -d @- <<'EOF'
    {
      "filename": "test.yaml",
      "content": "version: 0.4.0nvars: {}ngraph:n  id: paper_reviewn  description: Three agents collaboratively review academic papers from different perspectives. Input can be an arxiv URL or paper title.n  is_majority_voting: falsen  start:n    - Paper Fetchern  nodes:n    - id: Paper Fetchern      type: agentn      config:n        name: gpt-4on        provider: openain        role: |n          You are a paper content fetcher.n        base_url: ${BASE_URL}n        api_key: ${API_KEY}n      description: Fetches paper content from arxivn      context_window: 0n  edges: []"
    }
    EOF
    
  1. 更新能力单元
  • 方法:PUT
  • URL:http://127.0.0.1:6400/api/workflows//update
  • Content-Type:application/json
  • 格式说明:请求体格式与上传一致(含 filename 和 YAML 格式的 content 字符串)。
  • 示例:
    curl --noproxy 127.0.0.1 -v -X PUT 
      http://127.0.0.1:6400/api/workflows/test.yaml/update 
      -H "Content-Type: application/json" 
      -d @- <<'EOF'
    {
      "filename": "test.yaml",
      "content": "version: 0.4.0nvars: {}ngraph:n  id: paper_reviewn  description: Update example.n  is_majority_voting: falsen  start:n    - Paper Fetchern  nodes:n    - id: Paper Fetchern      type: agentn      config:n        name: gpt-4on        provider: openain        role: |n          You are a paper content fetcher.n        base_url: ${BASE_URL}n        api_key: ${API_KEY}n      description: Fetches paper content from arxivn      context_window: 0n  edges: []"
    }
    EOF
    
  1. 重命名能力单元
  • 方法:POST
  • URL:http://127.0.0.1:6400/api/workflows//rename
  • Content-Type:application/json
  • 请求体:{ "new_filename": "new_name.yaml" }
  • 示例:
    curl --noproxy 127.0.0.1 -v -X POST 
      http://127.0.0.1:6400/api/workflows/test.yaml/rename 
      -H "Content-Type: application/json" 
      -d '{"new_filename":"renamed.yaml"}'
    
  1. 复制能力单元
  • 方法:POST
  • URL:http://127.0.0.1:6400/api/workflows//copy
  • Content-Type:application/json
  • 请求体:{ "new_filename": "copy.yaml" }
  • 示例:
    curl --noproxy 127.0.0.1 -v -X POST 
      http://127.0.0.1:6400/api/workflows/test.yaml/copy 
      -H "Content-Type: application/json" 
      -d '{"new_filename":"test-copy.yaml"}'
    
  1. 删除能力单元
  1. 列出本地工具(function_calling)

工具热更新(Hot Updates)

本地函数工具由同一后端服务(端口 6400)统一管理。

相关接口:

  • 列出本地工具:GET http://127.0.0.1:6400/api/tools/local
  • 创建或覆写本地工具文件:POST http://127.0.0.1:6400/api/tools/local

创建示例:

curl --noproxy 127.0.0.1 -X POST http://127.0.0.1:6400/api/tools/local 
  -H "Content-Type: application/json" 
  -d '{
    "filename": "add.py",
    "content": "def add(a: int, b: int) -> dict:n    return {"result": a + b}n",
    "overwrite": true
  }'

YAML 示例(用于 local function_calling):

tooling:
  - type: function
    config:
      tools:
        - name: add

常见场景与工具推荐

  • 若智能体需进行网页搜索,请使用 web_search 工具。
  • 若智能体需获取某个 URL 的网页内容,请使用 read_webpage_content 工具。
  • 若智能体需检查本地文件列表,请使用 describe_available_fileslist_directory 工具。
  • 若智能体需读取某文件的局部片段,请使用 read_text_file_snippetread_file_segment 工具。
  • 若智能体需保存输出文件,请使用 save_file 工具。

高级工作流模板(Advanced Workflow Templates)

以下为可直接复制并适配的高级 YAML 模板,涵盖辩论循环(debate loop)、子图复用(subgraph reuse)、条件边(conditional edges)及选择性载荷路由(selective payload routing)等模式。

1)带裁判终止条件的双智能体辩论循环

version: 0.4.0
vars: {}
graph:
  id: debate_loop
  description: Two agents debate until the judge outputs "Verdict: STOP".
  is_majority_voting: false
  start:
    - Topic
  nodes:
    - id: Topic
      type: passthrough
      config: {}
    - id: Pro
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          You are the PRO debater. Respond with arguments and counterpoints.
    - id: Con
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          You are the CON debater. Respond with arguments and counterpoints.
    - id: Judge
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          Evaluate the debate. Output:
          Score: <0-1>
          Notes: 
          Verdict: CONTINUE|STOP
    - id: Final
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          Produce the final summary of the debate and recommendation.
  edges:
    - from: Topic
      to: Pro
      keep_message: true
    - from: Topic
      to: Con
      keep_message: true
    - from: Pro
      to: Judge
    - from: Con
      to: Judge
    - from: Judge
      to: Pro
      condition: need_reflection_loop
    - from: Judge
      to: Con
      condition: need_reflection_loop
    - from: Judge
      to: Final
      condition: should_stop_loop

2)子图复用 + 选择性载荷传递

version: 0.4.0
vars: {}
graph:
  id: parent_with_subgraph
  description: Uses a subgraph and only forwards the "Summary" section.
  start:
    - Request
  nodes:
    - id: Request
      type: passthrough
      config: {}
    - id: ResearchSubgraph
      type: subgraph
      config:
        type: file
        config:
          path: "subgraphs/deep_research_executor_sub.yaml"
    - id: Writer
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          Write the final report using only the provided Summary.
  edges:
    - from: Request
      to: ResearchSubgraph
      keep_message: true
    - from: ResearchSubgraph
      to: Writer
      process:
        type: regex_extract
        config:
          pattern: "Summary:\s*(.*)"
          group: 1
          multiline: true
          dotall: true
          on_no_match: pass

3)条件路由 + 最小化载荷传递

version: 0.4.0
vars: {}
graph:
  id: router_with_conditions
  description: Route to different nodes based on tags; forward only CONTENT block.
  start:
    - Router
  nodes:
    - id: Router
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          Decide the route. Output exactly:
          ROUTE: QA|REPORT
          CONTENT: 
    - id: QA
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          Answer the question concisely.
    - id: REPORT
      type: agent
      config:
        provider: openai
        base_url: ${BASE_URL}
        api_key: ${API_KEY}
        name: gpt-4o
        role: |
          Write a structured report.
  edges:
    - from: Router
      to: QA
      condition:
        type: keyword
        config:
          any: ["ROUTE: QA"]
      process:
        type: regex_extract
        config:
          pattern: "CONTENT:\s*(.*)"
          group: 1
          dotall: true
          on_no_match: drop
    - from: Router
      to: REPORT
      condition:
        type: keyword
        config:
          any: ["ROUTE: REPORT"]
      process:
        type: regex_extract
        config:
          pattern: "CONTENT:\s*(.*)"
          group: 1
          dotall: true
          on_no_match: drop

使用提示(Tips)

  • 任意 workflow YAML 均可作为子图(subgraph)嵌入更复杂的工作流中,包括已有的能力单元或 workflow。例如:
    - id: Research Subgraph
      type: subgraph
      config:
        type: file
        config:
          path: "yaml_instance/deep_research_v1.yaml"
    
  • 尽可能确保所有生成的产物(artifacts)均输出至你的 workspace 路径下
  • 确保所有智能体的角色设定简洁、专业,并配备充足可用的工具

相关专题

更多
Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

0

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

0

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

0

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

0

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

0

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

0

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

0

22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
文心快码功能介绍
文心快码功能介绍

共0课时 | 0人学习

文心快码Agent使用手册
文心快码Agent使用手册

共0课时 | 0人学习

文心快码产品文档
文心快码产品文档

共0课时 | 0人学习