Shannon
把多智能体任务编排为可预算、可审计、可回放的生产工作流。
按维度查看评分与理由
证据显示有WASI沙箱、OPA策略、多租户隔离、人类审批工作流、令牌预算控制等安全特性,但具体实现细节未在提供的文件中展示,且未验证发布者身份。扣分原因:安全特性多为声明,缺乏代码级证据;发布者未验证。
README和CI配置显示有Temporal工作流、时间旅行调试、健康检查、错误处理等,但未提供实际运行结果。扣分原因:依赖可用性未验证,失败消息的具体内容未展示。
README展示了多种执行策略、多LLM提供商、平台特定指南,但未明确能力边界和触发精度。扣分原因:能力边界和触发条件描述不完整。
有清晰的架构文档、安装指南、示例和FAQ,但已知限制和版本变更日志不完整。扣分原因:已知限制未明确列出,版本变更日志未提供。
提供了多种API和SDK,输出格式明确,但未提供实际性能或成本数据。扣分原因:成本效益未量化。
README中的声明与代码结构部分对应,但缺乏独立验证。扣分原因:声明与代码的对应关系不完整,事实与推断未明确区分。
- 发布者身份未验证,需谨慎对待。
- 安全特性多为声明,需审查实际代码实现。
- 依赖可用性和失败消息未验证。
- 已知限制和版本变更日志不完整。
这个 Agent 能做什么,适合哪些场景?
Shannon 是一个以生产部署为目标的多智能体编排框架,核心服务由 Go、Rust 和 Python 构成。其架构包括 Gateway、基于 Temporal 的 Orchestrator、带 WASI 沙箱的 Rust Agent Core,以及负责模型提供商与工具调用的 Python LLM Service。任务可通过原生 REST API、SSE、Python SDK、桌面应用或 OpenAI 兼容接口提交,并按复杂度路由到 Simple、DAG、ReAct、Research、Swarm 等策略。部署边界是自托管的 Docker Compose 服务栈,包含 PostgreSQL、Redis 和 Temporal;浏览器自动化服务为可选组件。它适合需要工作流回放、预算限制、审批门禁和运行时可观测性的团队,而不是只需要轻量单次模型调用的场景。
客户端向 POST /api/v1/tasks 提交 query、session_id 和可选 context;Gateway 提供 REST、JWT/API key 认证和限流,Orchestrator 使用 Temporal 进行任务拆解、策略选择与预算管理。Agent Core 执行令牌计数、熔断和 WASI 沙箱约束,LLM Service 调用 OpenAI、Anthropic、Google、DeepSeek、xAI、Ollama 等提供商,并提供 MCP 工具和 agent loop。系统可返回同步任务结果,或通过 GET /api/v1/stream/sse、WebSocket 和任务事件接口输出实时执行信息;也支持工具执行、会话管理、计划任务、暂停、恢复和取消任务。
- 平台工程团队需要把多步骤 AI 任务作为可重试、可回放的 Temporal 工作流部署到自有 Docker 环境时。
- 应用团队已有 OpenAI SDK 调用代码,但希望通过
OPENAI_API_BASE=http://localhost:8080/v1接入编排、预算和任务控制时。 - 研究或分析团队需要以
force_research或force_swarm运行多阶段研究、并行视角分析或 lead-orchestrated agent 团队时。 - 需要对代码执行设置隔离边界,并通过 WASI 沙箱、OPA 策略和人工审批处理高风险步骤的团队。
- 需要用 Playwright 服务执行网页交互任务,并愿意额外启用 browser Compose profile 的团队。
这个 Agent 有哪些优点和局限?
- 以 Temporal 工作流承载任务执行,并提供
replay_workflow.sh的逐步回放能力,面向故障排查和长流程执行。 - 提供硬令牌预算、预算接近耗尽时的模型回退,以及多种按复杂度路由的执行策略。
- 通过原生 REST API、SSE/WebSocket、Python SDK 和 OpenAI 兼容 API 覆盖多种接入方式。
- 安全与治理能力有明确组件:WASI 沙箱、OPA 策略、多租户隔离描述和人工审批工作流。
- 运行依赖 Docker、Docker Compose、至少一个模型提供商 API key,并涉及 PostgreSQL、Redis 和 Temporal 等服务。
- 架构横跨 Go、Rust、Python 和可选的 Tauri/Next.js 桌面端,源码构建与故障定位的技术面较广。
- Playwright 浏览器自动化默认不启动,且文档说明其 Chromium 镜像约 3.4GB。
- README 列出了多家模型提供商和自动故障转移,但未给出各提供商功能一致性或生产 SLA 的证据。
如何安装或部署这个 Agent?
前提是 Docker、Docker Compose,以及至少一个 LLM 提供商的 API key。可执行:curl -fsSL https://raw.githubusercontent.com/Kocoro-lab/Shannon/main/scripts/install.sh | bash。该安装流程会下载配置、提示输入 API key、拉取 Docker 镜像并启动服务。若从源码构建:git clone https://github.com/Kocoro-lab/Shannon.git && cd Shannon && make setup,编辑 .env 填入 API key,执行 ./scripts/setup_python_wasi.sh,然后运行 make dev。
如何使用这个 Agent?
服务启动后,提交首个任务:curl -X POST http://localhost:8080/api/v1/tasks -H "Content-Type: application/json" -d '{"query":"What is the capital of France?","session_id":"demo"}'。使用返回的 task_id 通过 curl -N "http://localhost:8080/api/v1/stream/sse?workflow_id=<task_id>" 获取实时事件。Python 客户端可先执行 pip install shannon-sdk,再用 ShannonClient(base_url="http://localhost:8080") 调用 submit_task 和 wait。如需 OpenAI 兼容入口,设置 OPENAI_API_BASE=http://localhost:8080/v1。
这个 Agent 与同类方案有什么区别?
README 将 Shannon 定位为生产可靠性框架:相较于聚焦 LLM chains 与 RAG 的 LangChain,以及聚焦角色扮演式任务委派的 CrewAI,Shannon 强调 Temporal 工作流、时间回放和硬令牌预算。
常见问题
能否继续使用现有的 OpenAI SDK?
OPENAI_API_BASE 设置为 http://localhost:8080/v1。必须使用某一家模型提供商吗?
如何限制一次任务的成本?
budget_max;README 说明系统会强制执行令牌上限,并在预算接近耗尽时回退到较低成本模型。浏览网页功能是否默认可用?
--profile browser 显式启用。