AutoSwarm 影子适配器

让 AutoSwarm 的智能体 DAG 在需要人工签核或远程算力时非阻塞暂停,不再超时或卡住并行分支。

Star 数
★ 2.8k
最近更新
2 天前
License
MIT
主语言
Python

30 秒速览

运行形态
代码库 / SDK自托管服务命令行工具
可在哪里用
兼容但需适配OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.10+AutoSwarm(opc)核心Ollama(可选,用于本地硅基工人)Shell / 命令行网络访问本地文件系统
典型场景
团队用 AutoSwarm 搭建公司级多智能体流程,但法务、架构评审等角色必须由真人最终签核
不适合
  • 没有运行 OpenOPC/AutoSwarm DAG 引擎的团队
  • 需要开箱即用托管服务、不想自建服务的团队

这个 Agent 能做什么,适合哪些场景?

AutoSwarm-Shadow-Adapter 是 AutoSwarm(OpenOPC)智能体 DAG 运行时的外部适配器插件,通过 ADAPTER_CLASSES["shadow"] 注册进入引擎的 ExternalAgentAdapter 体系,核心仓库零改动。它拦截被标记为 preferred_external_agent: shadow 的角色任务,在 50ms 内把任务记录落到独立的 SQLite WAL 数据库 shadow_tasks.db,并立刻返回 AWAITING_HUMAN 释放执行线程。人工审核者通过 React 19 门户与 FastAPI 的 REST API(shadow-serve,默认 8800 端口)认领任务、查看祖先交付物与结构化任务简报、上传最多 5 个文件(单次 50MB 上限)。远程 GPU 节点可用 shadow-worker 守护进程按角色轮询并本地推理,支持 Ollama、Anthropic、OpenAI 或自定义 Python 处理器。交付提交后,OpcResumeRepository 写回宿主 store.db 的 delegation_work_items.phase,触发 AutoSwarm 原生状态机唤醒下游 DAG 节点。

适配器在引擎侧拦截任务:解析项目目标,用 TaskBriefBuilder 生成 markdown 简报,把记录写入 shadow_tasks.db 后返回 AWAITING_HUMAN;同时把上游祖先交付物打包成上下文。门户侧,FastAPI 服务(shadow-serve --port 8800)提供 JWT + bcrypt 认证和 /api/v1 REST 接口,React 19 TaskWorkspace 供人工认领任务、写方案说明并上传附件,文件以 SHA-256 完整性哈希登记到 CorporateArtifacts。硅基侧,shadow-worker 以 --server-url、--role、--provider、--model 参数登录后轮询队列,在本地执行推理;也可用 ShadowWorker(custom_handler=...) 嵌入自有 Python 管道。交付提交后,OpcResumeRepository 更新宿主 store.db 的 delegation_work_items.phase 为 APPROVED,AutoSwarm 原生阶段钩子唤醒下游节点,并把产物向下游传递;rework_requested 状态支持返工循环。

  1. 团队用 AutoSwarm 搭建公司级多智能体流程,但法务、架构评审等角色必须由真人最终签核
  2. 外包或自由职业者同时承接多个客户合同,把执行交给远程硅基工作节点,自己只做异步审批
  3. 金融、医疗、法律团队需要在 SOC 2、ISO 17001、GDPR 场景下保留带署名与时间戳的不可变审计记录
  4. 企业有闲置 GPU 工作站或自有云端节点,想以 BYOC 方式接入推理而不改造中央引擎
  5. 关键岗位临时空缺或饱和时,由 AI 完成 90% 前期工作,仅把最终决策路由给可用的人类管理者

如何安装或部署这个 Agent?

要求 Python 3.10+,并已在宿主项目中安装并可运行 AutoSwarm(opc)引擎。

pip install AutoSwarm-shadow-adapter

至少需要设置 JWT 签名密钥(文档要求不少于 32 字符):

export SHADOW_JWT_SECRET="a-very-long-secret-at-least-32-chars"

可选环境变量包括 SHADOW_DB_PATH、SHADOW_OPC_STORE_PATH、SHADOW_UPLOAD_DIR、SHADOW_MAX_FILES_PER_SUBMISSION、SHADOW_MAX_FILE_SIZE_MB、SHADOW_MAX_TOTAL_UPLOAD_SIZE_MB、SHADOW_API_PORT。

如何使用这个 Agent?

在主程序里注册适配器并在后台线程启动门户:

from opc.layer3_agent.adapters.registry import ADAPTER_CLASSES
from shadow_adapter import ShadowModeAdapter, start_server_in_thread

ADAPTER_CLASSES["shadow"] = ShadowModeAdapter
start_server_in_thread(port=8800)

或在独立终端以边车方式启动:

shadow-serve --port 8800

然后在公司配置中把需要人工的角色指向影子适配器:

roles:
  legal_counsel:
    title: "Human Legal Counsel"
    execution_strategy: external
    preferred_external_agent: shadow

  senior_architect:
    title: "Human Senior Architect"
    execution_strategy: external
    preferred_external_agent: shadow

远程算力节点以工作进程接入:

shadow-worker \
  --server-url "http://192.168.1.100:8800" \
  --username "dev_node_1" \
  --password "secure_pass_1" \
  --role "senior_developer" \
  --provider "ollama" \
  --model "llama3.3:70b"

人工审核者随后打开 http://localhost:8800 登录门户,认领任务并提交交付物,API 基址为 http://localhost:8800/api/v1。

这个 Agent 有哪些优点和局限?

优点
  • 非阻塞拦截(<50ms)把任务停放到独立 SQLite WAL 库,人工响应时间可以无限长而不会触发引擎超时
  • 通过 ADAPTER_CLASSES["shadow"] 注册为外部适配器,不需要修改 AutoSwarm 核心仓库
  • 同一套 REST 接口同时服务真人门户(React 19)和远程 GPU 节点(shadow-worker),支持 Ollama、Anthropic、OpenAI 或自定义处理函数
  • 交付提交后写回宿主 store.db 的 delegation_work_items.phase,直接复用 AutoSwarm 原生状态机恢复下游节点
  • 内置 CorporateArtifacts 产物登记(SHA-256 哈希)和基于公司配置的层级上下文注入,下游角色自动继承上游文件
局限
  • 完全依赖 AutoSwarm(opc)引擎及其 registry、store.db 结构,脱离该生态无法单独使用
  • 部署需要配置 JWT 密钥、宿主 store.db 路径、上传目录与多用户账号,不属于一键上手
  • 文档自述为 v0.1.0 预发布版本,仓库地址大小写在不同位置不一致(shadow-adapter / Shadow-Adapter)
  • 默认配置的上传上限(单文件 10MB、单次 5 个文件、总计 50MB)可能不适合大体积交付物
  • 部分架构文档链接指向搜索页而非实际文件,深层规范需要自行补齐

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
AutoSwarm 影子适配器 当前 31 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 2.8k 2 天前 Python OpenAI API · Claude API
Auto Browser 62 · 存在缺口 自托管服务免费 + 模型费 ★ 914 3 天前 Python OpenAI API · Claude API
审脉 AuditPilot 60 · 存在缺口 网页应用免费 + 模型费 ★ 1.2k 2 个月前 Python —
Agentspan 62 · 存在缺口 命令行工具免费 + 模型费 ★ 499 27 天前 TypeScript OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
31/ 100 五分制 1.6 / 5
信任安全 8/29
可靠稳定 5/14
适用触发 8/18
规范维护 4/18
有效结果 4/13
证据核验 2/8
查看各维度的扣分理由
信任安全8 / 29 · 1.4/5

README 描述了 JWT+bcrypt 认证、上传大小上限、SHA-256 完整性哈希与审计时间线,属于设计层面的安全意图;但仓库仅提供 README、LICENSE、pyproject、CI 与测试文件,缺少实际实现代码(shadow_adapter 包、security.py、upload.py 等)可供核验,因此权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部副作用均只能给 1(有声明无实现佐证)。回滚方面:README 声称可恢复 AutoSwarm 的 store.db 状态,但没有任何撤销/回滚已提交交付物或恢复被改写状态的机制说明,给 0。来源归属:LICENSE 与 pyproject 标注 MIT 与作者,但 README 中大量链接指向 google.com 搜索而非真实文档,归属可信度弱,给 1。

可靠稳定5 / 14 · 1.8/5

测试文件(conftest.py、mock_openopc_engine.py)展示了 mock 引擎的完整生命周期断言,CI 配置了多版本矩阵,说明有一定自洽性;但实现代码缺失,无法验证测试是否真能通过,也无法确认依赖(opc>=0.1.0 为可选依赖)是否可用,失败信息处理无源码可查,故三项均给 1。

适用触发8 / 18 · 2.2/5

README 明确列出目标受众(自由职业者、企业合规、BYOC 远程算力)与多种使用场景,audience_and_scenarios 给 2;但能力边界(如不支持哪些 DAG 特性)、触发精度(preferred_external_agent: shadow 的匹配规则细节)与环境适配(仅提及 Python 3.10+、SQLite WAL,未说明操作系统/网络/防火墙要求)均只有概述,给 1。

规范维护4 / 18 · 1.1/5

README 结构清晰、有安装步骤与示例,给 1;但命名稳定性存在明显问题:包名在 README 中为 AutoSwarm-shadow-adapter,pyproject 中为 openopc-shadow-adapter,仓库名为 AutoSwarm-Shadow-Adapter,且 README 链接指向 google.com 搜索,命名与链接均不稳定,给 0。已知限制完全缺失,给 0。LICENSE 为完整 MIT 文本,给 2。版本号在 README(v0.1.0)与 pyproject(1.0.0)不一致,且无 CHANGELOG 文件,给 0。维护责任:有作者与 Issue 链接,但发布者身份未验证,给 1。

有效结果4 / 13 · 1.5/5

README 描述了输出可用性(交付物、附件、审计时间线)与边际价值(非阻塞 HITL、BYOC),但缺少实现代码与真实运行证据,无法确认输出是否可直接使用、边际价值是否成立、成本收益是否合理,三项均给 1。

证据核验2 / 8 · 1.3/5

claim_traceability 给 0:README 中多处链接指向 google.com 搜索而非真实文档(docs/architecture.md 等),关键声明无法追溯。cross_source_corroboration 给 1:测试文件与 README 描述有一定对应,但实现代码缺失,交叉验证有限。fact_inference_separation 给 1:README 混合了事实描述与营销性推断(如“5x 输出”“90% 初步工作”),未明确区分。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 仓库缺少实际实现代码(shadow_adapter 包、security.py、upload.py 等),仅有 README、测试与配置,无法验证安全与功能声明。
  • README 中多处文档链接指向 google.com 搜索而非真实文件,关键架构与数据库 schema 声明无法追溯。
  • 包名与版本号不一致(README v0.1.0 / pyproject 1.0.0;AutoSwarm-shadow-adapter / openopc-shadow-adapter),存在命名与发布稳定性风险。
  • 缺少已知限制与 CHANGELOG,回滚机制未说明,发布者身份未经验证。
证据充分度:低 评估于 2026年10月22日 审查版本 69d27ddcd626
查看完整评分方法 →

常见问题

人工审核者几个小时后才响应,会拖垮 AutoSwarm 的 DAG 吗?
不会。任务被写入独立的 shadow_tasks.db 后立即返回 AWAITING_HUMAN 并释放执行线程,其他并行分支继续运行;交付提交时再写回宿主 store.db 恢复下游节点。
必须使用云端大模型吗?
不必须。shadow-worker 支持 --provider ollama 在本地 GPU 节点推理,也支持 anthropic、openai 或通过 ShadowWorker(custom_handler=...) 接入自有模型与私有数据库。
远程节点如何鉴权、数据落在哪里?
门户使用 JWT(密钥为 SHADOW_JWT_SECRET,至少 32 字符)加 bcrypt 认证,远程 worker 通过 --username/--password 登录。任务与附件默认落在本机的 shadow_tasks.db 与 shadow_uploads 目录,产物哈希登记在 CorporateArtifacts。
它能在没有 OpenOPC/AutoSwarm 的项目里单独用吗?
不能。它注册在 AutoSwarm 的适配器注册表上并写回其 store.db,属于该引擎的扩展插件,必须有可运行的 opc 宿主环境。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents