# research-agent **Repository Path**: edfeff/research-agent ## Basic Information - **Project Name**: research-agent - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-20 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 关注公众号,查看开发教程 欢迎大家关注 dev派 来查看开发教程 ![](logo.png) # 多智能体研究系统 一个多智能体协作的研究系统,通过协调多个专业子智能体来研究任意主题,并生成包含数据可视化的综合 PDF 报告。 ## 快速开始 ```bash # 安装依赖 uv sync # 设置 API 密钥 export ANTHROPIC_API_KEY="your-api-key" # 运行智能体 uv run python research_agent/agent.py ``` 然后输入: "Research quantum computing developments in 2025" ## 工作原理 1. **主导智能体**将你的请求拆分为 2-4 个子主题 2. 并行启动多个**研究员**子智能体进行网络搜索 3. 每个研究员将调查结果保存至 `files/research_notes/` 4. 启动**数据分析师**提取指标并在 `files/charts/` 中生成图表 5. 启动**报告撰写员**在 `files/reports/` 中生成最终 PDF 报告 ## 智能体角色 | 智能体 | 工具 | 职责 | |-------|-------|---------| | **主导智能体** | `Task` | 协调研究,将任务委派给子智能体 | | **研究员** | `WebSearch`, `Write` | 从网络收集信息 | | **数据分析师** | `Glob`, `Read`, `Bash`, `Write` | 提取指标,生成图表 | | **报告撰写员** | `Skill`, `Write`, `Glob`, `Read`, `Bash` | 创建包含可视化内容的 PDF 报告 | ## 快捷命令 | 命令 | 说明 | |---------|-------------| | `/research <主题>` | 对任意主题开始聚焦研究 | | `/competitive-analysis <公司>` | 分析公司或产品 | | `/market-trends <行业>` | 研究行业趋势 | | `/fact-check <声明>` | 验证声明和论述 | | `/summarize` | 汇总当前所有研究成果 | ## 示例查询 - "Research quantum computing developments" - "What are current trends in renewable energy?" - `/competitive-analysis Tesla` - `/market-trends artificial intelligence` ## 输出结构 ``` files/ ├── research_notes/ # 研究员生成的 Markdown 文件 ├── data/ # 分析师生成的数据摘要 ├── charts/ # PNG 可视化图表 └── reports/ # 最终 PDF 报告 logs/ └── session_YYYYMMDD_HHMMSS/ ├── transcript.txt # 人类可读的对话记录 └── tool_calls.jsonl # 结构化的工具使用日志 ``` ## 基于 Hook 的子智能体追踪 系统使用 SDK Hook 追踪所有工具调用。 ### 追踪内容 - **谁**:哪个智能体(RESEARCHER-1、DATA-ANALYST-1 等) - **做了什么**:工具名称(WebSearch、Write、Bash 等) - **何时**:时间戳 - **输入/输出**:参数与结果 ### 工作原理 Hook 在每次工具调用执行前后进行拦截: ```python hooks = Hooks( pre_tool_use=[tracker.pre_tool_use_hook], post_tool_use=[tracker.post_tool_use_hook] ) ``` `parent_tool_use_id` 将工具调用与其所属子智能体关联起来: - 主导智能体通过 `Task` 工具启动一个研究员 → 获得 ID "task_123" - 该研究员的所有工具调用都包含 `parent_tool_use_id = "task_123"` - Hook 利用此 ID 识别是哪个子智能体发起的调用 ### 日志输出 **transcript.txt** - 人类可读格式: ``` [RESEARCHER-1] → WebSearch Input: query='quantum computing 2025' [DATA-ANALYST-1] → Bash Input: python matplotlib chart generation ``` **tool_calls.jsonl** - 结构化 JSON 格式: ```json {"event":"tool_call_start","agent_id":"RESEARCHER-1","tool_name":"WebSearch",...} {"event":"tool_call_complete","success":true,"output_size":15234} ```