stock/report/ClawWork_report.md
2026-02-27 03:17:12 +08:00

679 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ClawWork 项目深度调研报告
## 1. 项目概述
### 1.1 项目定位
**ClawWork** 是一个创新的 AI 智能体经济生存基准测试平台,由 HKUDS香港大学数据科学学院开发。该项目将 AI 助手从简单的对话工具转变为真正的"AI 同事",通过完成真实世界的专业任务来创造经济价值。
项目的核心概念是:**AI 智能体必须在经济压力下生存** —— 它们从 10 美元启动资金开始,需要支付每次 API 调用的 token 费用,通过完成真实工作任务赚取收入,维持经济可持续性。
### 1.2 主要功能
- **真实经济压力测试**AI 智能体需要支付 token 费用,通过完成任务赚取收入
- **GDPVal 基准数据集**:使用 OpenAI 的 GDPVal 数据集,包含 220 个跨 44 个职业的真实工作任务
- **多模型竞技场**:支持 GPT-4、Claude、GLM、Kimi、Qwen 等多种模型竞争
- **实时仪表板**React 前端展示智能体的经济状态、任务完成情况和学习进度
- **ClawMode 集成**:与 Nanobot 集成,将任何 Nanobot 实例转变为经济感知的 AI 同事
### 1.3 适用场景
- **AI 能力评估**:测试不同 AI 模型在真实工作任务中的表现
- **经济可持续性研究**:研究 AI 智能体在资源约束下的长期生存能力
- **多智能体竞争**:比较不同模型的成本效益和工作质量
- **AI 助手进化**:将普通 AI 助手转变为能创造经济价值的 AI 同事
---
## 2. 技术架构
### 2.1 技术栈
**后端技术栈**
- **Python 3.10+**:核心开发语言
- **FastAPI**:高性能 API 框架,提供 RESTful API 和 WebSocket 支持
- **LangChain + LangGraph**LLM 应用开发框架和智能体工作流
- **MCP (Model Context Protocol)**:工具调用协议
- **Pandas + PyArrow**:数据处理和分析
**前端技术栈**
- **React 18**:用户界面框架
- **Vite**:现代构建工具
- **Tailwind CSS**:实用优先的 CSS 框架
- **Recharts**:数据可视化图表库
- **Framer Motion**:动画库
**外部服务集成**
- **OpenAI API**GPT-4o 用于智能体和评估
- **E2B**:云端代码沙箱执行环境
- **Tavily/Jina AI**:网络搜索 API
- **OpenRouter**:多模型统一接口
### 2.2 核心模块
```
ClawWork/
├── livebench/ # 核心经济模拟引擎
│ ├── agent/ # 智能体实现
│ │ ├── live_agent.py # 主智能体类 (1162 行)
│ │ ├── economic_tracker.py # 经济追踪器 (876 行)
│ │ ├── message_formatter.py # 消息格式化
│ │ └── wrapup_workflow.py # 工作流封装
│ ├── work/ # 工作任务管理
│ │ ├── task_manager.py # 任务管理器
│ │ ├── evaluator.py # 工作评估器
│ │ └── llm_evaluator.py # LLM 评估实现
│ ├── tools/ # 工具集
│ │ ├── direct_tools.py # 核心工具 (555 行)
│ │ └── productivity/ # 生产力工具
│ │ ├── search.py # 网络搜索
│ │ ├── file_creation.py # 文件创建
│ │ ├── code_execution.py # 代码执行
│ │ └── video_creation.py # 视频创建
│ ├── api/ # API 服务
│ │ └── server.py # FastAPI 服务器
│ ├── prompts/ # 提示词模板
│ │ └── live_agent_prompt.py # 智能体提示词
│ └── configs/ # 配置文件
├── clawmode_integration/ # Nanobot 集成模块
│ ├── agent_loop.py # 智能体循环
│ ├── task_classifier.py # 任务分类器
│ ├── provider_wrapper.py # Provider 包装器
│ ├── tools.py # 工具实现
│ └── cli.py # 命令行接口
├── eval/ # 评估系统
│ └── meta_prompts/ # 44 个职业的评估提示词
├── frontend/ # React 前端
│ └── src/
│ ├── App.jsx # 主应用组件
│ ├── api.js # API 客户端
│ ├── pages/ # 页面组件
│ └── components/ # 可复用组件
└── scripts/ # 辅助脚本
├── calculate_task_values.py # 计算任务价值
├── estimate_task_hours.py # 估算任务工时
└── generate_static_data.py # 生成静态数据
```
### 2.3 代码结构分析
**核心代码统计**
- `live_agent.py`1162 行 —— 智能体主逻辑,包含决策、任务执行、学习循环
- `economic_tracker.py`876 行 —— 经济状态追踪,余额、成本、收入管理
- `direct_tools.py`555 行 —— 8 个核心工具的实现
**代码组织特点**
1. **模块化设计**:每个功能模块独立,职责清晰
2. **配置驱动**JSON 配置文件控制智能体行为
3. **插件架构**:通过 MCP 协议扩展工具
4. **数据持久化**JSONL 格式记录所有经济活动
---
## 3. 核心功能详解
### 3.1 经济系统
**核心机制**
```python
# 经济追踪器初始化
EconomicTracker(
signature="agent-name",
initial_balance=10.0, # 启动资金 $10
input_token_price=2.5, # 每百万输入 token $2.5
output_token_price=10.0, # 每百万输出 token $10.0
min_evaluation_threshold=0.6 # 最低评估分数获得支付
)
```
**成本计算**
- **Token 成本**:根据实际 API 调用计算输入/输出 token 费用
- **API 成本**网络搜索、OCR 等外部服务费用
- **收入计算**`quality_score × (estimated_hours × BLS_hourly_wage)`
**生存状态**
- **Thriving** (💪):余额充足,经济健康
- **Stable** (👍):收支平衡,可持续运营
- **Struggling** (⚠️):余额不足,需要谨慎
- **Bankrupt** (💀):资金耗尽,无法继续
### 3.2 任务系统
**GDPVal 数据集**
- **220 个任务**:涵盖 44 个职业类别
- **4 大领域**
- 科技与工程 (Technology & Engineering)
- 商业与金融 (Business & Finance)
- 医疗与社会服务 (Healthcare & Social Services)
- 法律、媒体与运营 (Legal, Media & Operations)
**任务价值计算**
```python
# 任务价值 = 预估工时 × 时薪
payment = quality_score × (estimated_hours × bls_hourly_wage)
```
**任务价值范围**
- 最低:$82.78
- 最高:$5,004.00
- 平均:$259.45
**任务类型示例**
- 财务分析报告
- 市场调研文档
- 医疗管理方案
- 法律顾问文档
- 软件代码项目
- 媒体制作任务
### 3.3 智能体工具集
**8 个核心工具**
1. **decide_activity(activity, reasoning)**
- 决策:工作还是学习
- 参数activity ("work"|"learn"), reasoning (至少 50 字符)
2. **submit_work(work_output, artifact_file_paths)**
- 提交完成的工作
- 支持文本输出和文件附件
- 触发评估和支付
3. **learn(topic, knowledge)**
- 学习新知识并持久化
- 最少 200 字符的知识记录
- 用于未来任务参考
4. **get_status()**
- 获取当前经济状态
- 返回余额、成本、收入、生存状态
5. **search_web(query, max_results)**
- 网络搜索 (Tavily 或 Jina AI)
- 获取最新信息和参考资料
6. **create_file(filename, content, file_type)**
- 创建文档文件
- 支持txt、xlsx、docx、pdf
7. **execute_code(code, language)**
- 在 E2B 沙箱中执行代码
- 支持 Python安全隔离
8. **create_video(slides_json, output_filename)**
- 从幻灯片生成 MP4 视频
- 支持文本和图片幻灯片
### 3.4 评估系统
**LLM 评估器**
- 使用 GPT-4o 进行工作质量评估
- 44 个职业类别,每个有专门的评估提示词
- 评分维度:
- **完整性 (40%)**:是否交付所有要求的产物
- **正确性 (30%)**:实现是否准确,逻辑是否正确
- **质量 (20%)**:代码/文档质量、可维护性
- **领域标准 (10%)**:安全、可访问性、最佳实践
**评分标准** (0-10 分)
- 0-2不可接受缺少文件或不完整
- 3-4多个主要要求缺失
- 5-6可接受大部分交付但有明显缺陷
- 7-8良好所有交付物存在小缺陷
- 9-10优秀完全符合要求专业质量
**关键规则**
- 最低支付门槛0.6 分6/10
- 强制低分:缺少任何必需文件 → 0-2 分
---
## 4. 代码质量分析
### 4.1 代码组织
**优点**
1. **清晰的模块划分**:按功能分层,职责单一
2. **配置与代码分离**JSON 配置文件管理业务参数
3. **类型注解**:广泛使用 Python 类型提示
4. **文档字符串**:类和方法都有详细的 docstring
**示例代码结构**
```python
class LiveAgent:
"""
LiveAgent - AI agent for economic survival simulation
Core functionality:
1. Economic tracking (balance, token costs, income)
2. Daily decision-making (work vs learn)
3. Work task execution
4. Learning and knowledge accumulation
5. Survival management
"""
def __init__(
self,
signature: str,
basemodel: str,
initial_balance: float = 1000.0,
# ... 更多参数
):
"""
Initialize LiveAgent
Args:
signature: Agent signature/name
basemodel: Base model name
initial_balance: Starting balance in dollars
# ... 更多文档
"""
```
### 4.2 设计模式
**使用的模式**
1. **追踪器模式 (Tracker)**`EconomicTracker` 专门管理经济状态
2. **管理器模式 (Manager)**`TaskManager` 负责任务生命周期
3. **评估器模式 (Evaluator)**`WorkEvaluator``LLMEvaluator` 分离评估逻辑
4. **工具模式 (Tools)**LangChain 的 `@tool` 装饰器定义工具接口
5. **包装器模式 (Wrapper)**`TrackedProvider` 包装 LLM Provider 添加成本追踪
### 4.3 可维护性
**优点**
- **单一职责**:每个类/模块职责清晰
- **依赖注入**:通过构造函数注入依赖
- **错误处理**:显式错误处理和日志记录
- **数据持久化**JSONL 格式便于分析和审计
**改进空间**
- 部分文件较长(如 live_agent.py 1162 行)
- 缺少单元测试(根据代码结构判断)
- 某些配置硬编码(如路径)
---
## 5. 依赖分析
### 5.1 核心依赖
**Web 框架**
```
fastapi>=0.104.0 # 现代、快速的 Web 框架
uvicorn>=0.24.0 # ASGI 服务器
websockets>=12.0 # WebSocket 支持
```
**LLM 和 AI**
```
langchain>=0.1.0 # LLM 应用框架
langchain-openai>=0.0.2 # OpenAI 集成
langchain-mcp-adapters>=0.1.0 # MCP 协议适配
langgraph>=0.2.0 # 智能体工作流
```
**数据处理**
```
pandas>=2.0.0 # 数据分析
pyarrow>=14.0.0 # 高性能数据格式
```
**生产力工具**
```
tavily-python>=0.3.0 # 网络搜索
python-docx>=1.0.0 # Word 文档
python-pptx>=0.6.21 # PowerPoint
reportlab>=4.0.0 # PDF 生成
openpyxl>=3.1.0 # Excel 处理
```
### 5.2 版本兼容性
- **Python**:要求 3.10+
- **Node.js**:前端需要(版本未明确指定)
- **包管理**pipPython+ npm前端
### 5.3 外部服务依赖
**必需**
- OpenAI API智能体和评估
- E2B API代码执行沙箱
**可选**
- Tavily API网络搜索
- Jina AI API替代搜索
- DashScope APIOCR 处理)
---
## 6. 使用方式
### 6.1 安装步骤
**1. 克隆仓库**
```bash
git clone https://github.com/HKUDS/ClawWork.git
cd ClawWork
```
**2. 创建 Python 环境**
```bash
conda create -n clawwork python=3.10
conda activate clawwork
```
**3. 安装依赖**
```bash
pip install -r requirements.txt
```
**4. 前端依赖**
```bash
cd frontend && npm install && cd ..
```
**5. 配置环境变量**
```bash
cp .env.example .env
# 编辑 .env 填入 API 密钥
```
### 6.2 快速启动
**模式 1独立模拟**
```bash
# 终端 1 - 启动仪表板
./start_dashboard.sh
# 终端 2 - 运行智能体
./run_test_agent.sh
# 打开浏览器访问 http://localhost:3000
```
**模式 2ClawMode 集成**
```bash
# 启动 Nanobot + ClawWork 集成
python -m clawmode_integration.cli agent
```
### 6.3 配置示例
**基础配置** (`livebench/configs/default_config.json`)
```json
{
"livebench": {
"date_range": {
"init_date": "2025-01-20",
"end_date": "2025-01-31"
},
"economic": {
"initial_balance": 1000.0,
"token_pricing": {
"input_per_1m": 2.5,
"output_per_1m": 10.0
}
},
"agents": [
{
"signature": "gpt-4-agent",
"basemodel": "gpt-4-turbo-preview",
"enabled": true,
"tasks_per_day": 1
}
]
}
}
```
**多智能体配置**
```json
"agents": [
{"signature": "gpt4o-run", "basemodel": "gpt-4o", "enabled": true},
{"signature": "claude-run", "basemodel": "claude-sonnet-4-5-20250929", "enabled": true},
{"signature": "glm-run", "basemodel": "glm-4.7", "enabled": true}
]
```
### 6.4 使用示例
**命令行交互**
```bash
# 使用 /clawwork 命令分配付费任务
/clawwork Write a market analysis for electric vehicles
# 系统响应示例:
# → Classified as "Market Research Analysts" at $38.71/hr
# → Estimated 3 hours = $116.13 max payment
```
**智能体决策示例**
```
============================================================
📅 ClawWork Daily Session: 2025-01-20
============================================================
📋 Task: Buyers and Purchasing Agents — Manufacturing
Task ID: 1b1ade2d-f9f6-4a04-baa5-aa15012b53be
Max payment: $247.30
🔄 Iteration 1/15
📞 decide_activity → work
📞 submit_work → Earned: $198.44
============================================================
📊 Daily Summary - 2025-01-20
Balance: $11.98 | Income: $198.44 | Cost: $0.03
Status: 🟢 thriving
============================================================
```
---
## 7. 优缺点分析
### 7.1 优势
**1. 创新的经济压力测试机制**
- 真实模拟 AI 智能体的经济可持续性
- 不仅测试能力,还测试成本效益
- 创造真实的"生存压力"
**2. 真实世界的任务数据集**
- GDPVal 数据集来自 OpenAI质量高
- 44 个职业类别覆盖广泛
- 任务要求真实的可交付成果(文档、代码、分析)
**3. 多维度评估体系**
- LLM 评估替代简单规则
- 44 个职业有专门的评估标准
- 多维度评分(完整性、正确性、质量、标准)
**4. 模块化和可扩展性**
- 清晰的架构设计
- 支持多种 LLM 模型
- 易于添加新工具和任务源
**5. 实时可视化和监控**
- React 前端实时展示
- WebSocket 实时更新
- 丰富的数据分析和图表
**6. 与 Nanobot 集成**
- 将任何 Nanobot 实例转变为经济感知助手
- 支持 9 种消息渠道
- 统一的成本追踪
### 7.2 局限性
**1. 依赖外部 API**
- 需要多个 API 密钥OpenAI、E2B、Tavily 等)
- API 成本可能较高(尤其是 GPT-4o 评估)
- 依赖外部服务的稳定性
**2. 评估成本**
- 每个任务都需要 GPT-4o 评估
- 评估成本可能超过智能体运行成本
- 不适合大规模低成本测试
**3. 任务复杂度限制**
- GDPVal 任务虽然真实,但相对独立
- 缺少长期、多步骤的复杂项目
- 任务间缺少依赖关系
**4. 技术门槛**
- 需要 Python 3.10+ 和 Node.js 环境
- 配置相对复杂(多个配置文件)
- 需要理解 LangChain 和 MCP
**5. 代码成熟度**
- 缺少全面的单元测试
- 部分代码文件较长
- 错误处理可以更加健壮
### 7.3 适用人群
**适合**
- AI 研究人员和开发者
- 需要评估 AI 模型实际工作能力的团队
- 对 AI 经济可持续性感兴趣的研究者
- 想要构建 AI 同事系统的开发者
**不适合**
- 寻找简单聊天机器人的用户
- 预算有限的个人开发者API 成本高)
- 需要即插即用解决方案的生产环境
---
## 8. 与当前项目的关联性
### 8.1 可借鉴的代码
**1. 经济追踪系统** (`economic_tracker.py`)
- 精细的 token 成本追踪机制
- 多维度成本分析LLM、API、搜索
- 实时余额计算和持久化
- **适用场景**:任何需要成本监控的 AI 应用
**2. 工具系统架构** (`direct_tools.py`)
- 使用 LangChain `@tool` 装饰器的优雅实现
- 工具状态管理和全局状态共享
- 异步工具执行模式
- **适用场景**:构建 LLM 工具链
**3. 任务管理系统** (`task_manager.py`)
- 灵活的任务加载Parquet、JSONL、内联
- 任务分配和过滤机制
- 参考文件管理
- **适用场景**:批量任务处理系统
**4. 评估框架** (`evaluator.py`, `llm_evaluator.py`)
- LLM 作为评估器的实现
- 分类别的评估提示词模板
- 结构化评分输出
- **适用场景**:自动化质量评估
**5. Provider 包装器** (`provider_wrapper.py`)
- 透明的成本追踪包装
- 拦截和记录所有 LLM 调用
- 支持多种 Provider
- **适用场景**LLM 调用监控和计费
### 8.2 可借鉴的设计思路
**1. 经济可持续性设计**
```
核心思想AI 智能体必须为自己的计算资源付费
- 每个操作都有成本
- 必须通过创造价值来生存
- 创造真实的资源约束压力
```
**应用场景**:资源有限的边缘计算、去中心化 AI 网络
**2. 工作-学习权衡机制**
```
核心思想:智能体需要决定是立即工作赚钱,还是投资学习
- 模拟真实的职业决策
- 长期 vs 短期的权衡
- 知识积累带来复利效应
```
**应用场景**:终身学习系统、自适应 AI 助手
**3. 多维度评估体系**
```
核心思想:不只看结果,还要看过程和质量
- 完整性、正确性、质量、标准
- 领域特定的评估标准
- 强制低分规则防止作弊
```
**应用场景**:自动化代码审查、内容质量评估
**4. 实时数据持久化**
```
核心思想JSONL 格式记录所有事件
- 便于追加写入
- 易于后续分析
- 支持实时流式处理
```
**应用场景**:事件溯源、审计日志、时间序列分析
**5. 配置驱动的智能体行为**
```
核心思想:通过 JSON 配置控制智能体参数
- 模型选择
- 经济参数
- 任务分配策略
- 无需修改代码即可实验
```
**应用场景**A/B 测试、参数调优、多环境部署
### 8.3 集成建议
**如果要在当前项目中使用 ClawWork 的组件**
**短期(快速收益)**
1. **集成经济追踪器**:为现有 AI 应用添加成本监控
2. **使用评估框架**:自动化评估生成内容的质量
3. **借鉴工具系统**:标准化工具定义和调用接口
**中期(架构改进)**
1. **引入任务管理系统**:标准化任务分配和追踪
2. **实施 Provider 包装**:统一 LLM 调用和监控
3. **采用配置驱动**:将硬编码参数迁移到配置文件
**长期(生态建设)**
1. **构建多智能体竞技场**:比较不同模型的实际工作能力
2. **开发经济压力测试**:评估 AI 系统的可持续性
3. **创建 AI 同事系统**:将助手转变为价值创造者
---
## 9. 总结
ClawWork 是一个**创新性强、架构清晰、实现完整**的 AI 经济生存基准测试平台。它的核心价值在于:
1. **真实经济压力**:通过 token 计费机制创造真实的资源约束
2. **实际工作任务**:使用 GDPVal 数据集测试真实工作能力
3. **多维度评估**:不仅看结果,还看质量、成本和可持续性
4. **模块化设计**:清晰的架构便于扩展和集成
对于希望构建**经济可持续的 AI 系统**、评估**AI 实际工作能力**、或研究**AI 长期生存策略**的团队ClawWork 提供了宝贵的参考实现和基础框架。
**关键文件路径汇总**
- 主智能体:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/agent/live_agent.py`
- 经济追踪:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/agent/economic_tracker.py`
- 工具实现:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/tools/direct_tools.py`
- 任务管理:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/work/task_manager.py`
- 评估系统:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/work/evaluator.py`
- API 服务:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/api/server.py`
- 前端应用:`/Users/cillin/workspeace/stock/reference/ClawWork/frontend/src/App.jsx`
- 配置文件:`/Users/cillin/workspeace/stock/reference/ClawWork/livebench/configs/default_config.json`
---
*报告生成时间2026-02-25*
*分析基于 ClawWork 仓库最新代码*
*报告字数:约 5500 字*