Back to Search
cooragent

cooragent/Clarity

Clarity 是一个基于 原生 Claude-skill 架构构建的金融分析智能体框架。它采用 Planning-with-Files 模式,通过持久化的任务计划、研究发现和进度日志来协调多个专业子智能体完成复杂的金融分析任务。

33stars
9forks
33watchers
Apache License 2.0
Updated 1/20/2026

README.md

Clarity

基于原生 Claude-skill 架构的金融分析智能体

English | 简体中文

Powered by Cooragent GitHub Stars GitHub Issues

功能特性快速开始使用方法工作流程架构设计

🌟 如果这个项目对您有帮助,请给我们一个 Star!您的支持是我们持续改进的动力!

💡 欢迎提出 Issue 或 PR,我们非常重视您的反馈和建议!


简介

Clarity 是一个基于 原生 Claude-skill 架构构建的金融分析智能体框架。它采用 Planning-with-Files 模式,通过持久化的任务计划、研究发现和进度日志来协调多个专业子智能体完成复杂的金融分析任务。

核心特点

  • 🧠 Claude-skill 原生架构:遵循 Anthropic 推荐的智能体设计模式
  • 📁 Planning-with-Files:通过文件系统持久化上下文,解决 LLM 长任务"遗忘"问题
  • 🤖 多智能体协作:6 个专业子智能体分工明确,协同完成分析任务
  • 📊 决策仪表盘:每日自动扫描市场,推荐值得关注的股票
  • 🔔 多渠道推送:支持企业微信、飞书、Telegram、邮件等多种通知渠道
  • 🌐 多市场支持:A 股、港股、美股(纳斯达克)全覆盖

功能特性

功能描述命令
持仓跟踪追踪知名投资者(如 Warren Buffett)的最新持仓变化track "Warren Buffett"
股票分析深度分析特定股票的技术面、基本面、新闻和市场情绪analyze AAPL
股票筛选根据复杂条件筛选符合要求的股票screen "高股息科技股"
自然语言查询支持中英文自然语言查询ask "分析苹果公司"
决策仪表盘每日扫描热门股票并生成报告dashboard

快速开始

安装

git clone https://github.com/your-org/Clarity.git
cd Clarity

# 使用 uv(推荐)
uv sync

配置

创建 .env 文件:

# ===== 必需配置 =====
OPENAI_API_KEY=your_openai_api_key
FINNHUB_API_KEY=your_finnhub_api_key

# ===== 可选:网络搜索 =====
SERPER_API_KEY=your_serper_api_key
JINA_API_KEY=your_jina_api_key

# ===== 可选:通知渠道 =====
# 企业微信机器人
WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx

# 飞书机器人
FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx

# Telegram Bot
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
TELEGRAM_CHAT_ID=123456789

# 邮件 (QQ/163/Gmail 等自动识别 SMTP)
EMAIL_SENDER=your@qq.com
EMAIL_PASSWORD=授权码

# Pushover (iOS/Android 推送)
PUSHOVER_USER_KEY=xxx
PUSHOVER_API_TOKEN=xxx

# 自定义 Webhook (钉钉、Discord、Slack、Bark 等)
CUSTOM_WEBHOOK_URLS=https://oapi.dingtalk.com/robot/send?access_token=xxx

Qwen(OpenAI 兼容模式)

# ===== 可选:Qwen =====
# 运行时通过 CLI 参数切换:uv run run_agent.py --model qwen ...
QWEN_API_KEY=your_dashscope_api_key
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
QWEN_MODEL=qwen-latest

Qwen 模式下如需联网检索,建议配置 SERPER_API_KEY。未配置时会回退为抓取 Google News,可能触发频控。


使用方法

Web UI

# 启动环境
source .venv/bin/activate 

# 启动 Web 界面
uv run python webui.py

# 创建公开链接(通过 Gradio Share)
uv run python webui.py --share

访问 http://localhost:7860 即可使用图形界面。

CLI 命令

# 分析股票
uv run python run_agent.py analyze AAPL
uv run python run_agent.py analyze NVDA --date 2025-01-15
uv run python run_agent.py --model qwen analyze AAPL

# 跟踪投资者持仓
uv run python run_agent.py track "Warren Buffett"

# 筛选股票
uv run python run_agent.py screen "high dividend yield tech stocks"

# 自然语言查询
uv run python run_agent.py ask "分析一下苹果公司的股票"

# 决策仪表盘
uv run python run_agent.py dashboard                           # 扫描 A股+美股
uv run python run_agent.py dashboard -m A股 港股              # 扫描指定市场
uv run python run_agent.py dashboard -n 20 -o report.md       # 推荐20只,保存到文件
uv run python run_agent.py dashboard --push                   # 扫描并推送通知
uv run python run_agent.py dashboard -p --push-to wechat      # 仅推送到企业微信

Python 代码

import asyncio
from tradingagents import FinancialAgentOrchestrator, AgentConfig, TaskType

async def main():
    orchestrator = FinancialAgentOrchestrator()

    # 分析股票
    result = await orchestrator.run(
        task_type=TaskType.STOCK_ANALYSIS,
        target="AAPL",
    )
    print(result["report"])

asyncio.run(main())
# 使用通知服务
from tradingagents.core import NotificationService

notification = NotificationService()
notification.send("# 测试报告\n这是 Markdown 格式的消息")

工作流程

run_track("Warren Buffett") 为例,展示系统工作流程:

用户输入: uv run python run_agent.py track "Warren Buffett"
                        │
                        ▼
┌─────────────────────────────────────────────────────────────┐
│                    run_agent.py                             │
│                                                             │
│  1. 加载 .env 环境变量                                       │
│  2. 创建 AgentConfig                                        │
│  3. 创建 FinancialAgentOrchestrator                         │
│  4. 调用 orchestrator.run(task_type=HOLDINGS_TRACKING, ...) │
└─────────────────────────────────────────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────────┐
│               FinancialAgentOrchestrator                    │
│                                                             │
│  1. MasterAgent.create_task_plan()  ──► 初始化 task_plan.md │
│  2. WorkingAgent.execute_plan()     ──► 执行各 SubAgent     │
│  3. StateChecker.validate_step()    ──► 验证/重试           │
│  4. MasterAgent.synthesize_results() ──► 合成最终报告       │
└─────────────────────────────────────────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────────┐
│                   SubAgents 执行                             │
│                                                             │
│  Step 1: HoldingsHunter                                     │
│    ├─► 搜索 SEC 13F 文件                                    │
│    ├─► 解析持仓数据                                         │
│    └─► 生成持仓报告                                         │
│                                                             │
│  Step 2: NewsAnalyst                                        │
│    └─► 搜索相关新闻并分析                                   │
│                                                             │
│  每步执行后更新 Planning Files:                              │
│    • findings.md  ←  追加分析结果                           │
│    • progress.md  ←  追加进度日志                           │
│    • task_plan.md ←  更新状态表                             │
└─────────────────────────────────────────────────────────────┘

Planning-with-Files 模式

系统使用三个持久化文件来管理长任务:

文件作用更新时机
task_plan.md任务计划、阶段状态、SubAgent 分配任务开始、状态变更
findings.md研究发现、API 返回数据、分析结果每个 SubAgent 完成后
progress.md执行日志、错误记录、重试追踪每步操作后

核心规则:

  • 2-Action Rule:每 2 次操作后更新 findings.md
  • 决策前重读:关键决策前重读 task_plan.md
  • 错误持久化:所有错误都记录到文件,避免重复犯错

架构设计

Clarity/
├── run_agent.py          # CLI 入口
├── webui.py              # Web UI (Gradio)
├── templates/            # 规划文件模板
├── runtime/              # 运行时文件(git-ignored)
│   ├── task_plan.md
│   ├── findings.md
│   ├── progress.md
│   └── reports/
└── tradingagents/
    ├── core/             # 核心智能体
    │   ├── orchestrator.py     # 编排器
    │   ├── master_agent.py     # 主智能体(规划)
    │   ├── working_agent.py    # 工作智能体(执行)
    │   ├── state_checker.py    # 状态检查器
    │   ├── notification.py     # 通知服务
    │   ├── subagents/          # 子智能体
    │   │   ├── fundamentals_analyst.py
    │   │   ├── sentiment_analyst.py
    │   │   ├── news_analyst.py
    │   │   ├── technical_analyst.py
    │   │   ├── holdings_hunter.py
    │   │   ├── alpha_hound.py
    │   │   └── daily_dashboard.py
    │   └── tools/              # 工具
    │       ├── finnhub_tools.py
    │       ├── search_tools.py
    │       ├── dashboard_scanner.py
    │       └── data_provider/
    └── dataflows/        # 数据工具

子智能体

智能体职责使用场景
Fundamentals Analyst分析公司财务报表和基本面指标股票分析
Technical Analyst分析技术指标(MACD、RSI、布林带等)股票分析
News Analyst收集和分析相关新闻所有任务
Sentiment Analyst分析市场情绪和社交媒体讨论股票分析
Holdings Hunter追踪机构和知名投资者持仓持仓跟踪
Alpha Hound基于复杂条件筛选股票股票筛选
Daily Dashboard每日市场扫描和值得关注的股票决策仪表盘

通知渠道

渠道环境变量消息格式
企业微信WECHAT_WEBHOOK_URLMarkdown
飞书FEISHU_WEBHOOK_URLMarkdown 卡片
TelegramTELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_IDMarkdown
邮件EMAIL_SENDER + EMAIL_PASSWORDHTML
PushoverPUSHOVER_USER_KEY + PUSHOVER_API_TOKEN纯文本
自定义 WebhookCUSTOM_WEBHOOK_URLS自动适配

配置选项

详见 tradingagents/core/config.py

from tradingagents import AgentConfig

config = AgentConfig(
    llm_provider="openai",              # openai, anthropic, google
    deep_think_llm="gpt-5.2",
    online_tools=True,                  # 使用在线工具
    max_retries=3,
)

支持与贡献

本项目由 Cooragent 团队提供技术支持。Cooragent 是自演进的多智能体平台,致力于让每个人都能成为 Agent 的指挥官。

🌟 支持我们

如果这个项目对您有帮助,请:

  • 给项目点个 Star - 这是对我们最大的鼓励!
  • 🐛 提交 Issue - 报告 Bug 或提出功能建议
  • 🔀 提交 PR - 欢迎贡献代码和文档改进
  • 💬 加入社区 - 与其他用户交流使用经验

📮 联系我们

Star History

Star History Chart