Sico 数字员工平台
让数字员工在人工监督下可靠执行任务,并从生产经验中持续进化。
证据显示平台采用 JWT、Casbin RBAC、沙箱间 HMAC 签名、隔离执行环境,并对 Android 文件路径逃逸进行拒绝测试;架构也说明了 HTTP、gRPC、持久化、模型提供商和执行轨迹的主要流向。安全政策要求轮换示例密钥、启用 TLS、限制数据服务网络访问,并提供私密漏洞报告渠道。扣分在于代理具备 shell、文件删除、应用卸载和外部网络访问等高影响能力,却未展示细粒度权限清单、逐次危险操作确认或覆盖全平台的批准策略;敏感数据的加密、保留、删除和供应商传输规则也未完整说明。依赖方面虽有锁文件、固定 Ruff 版本和 CI,但部分工具使用 latest 安装,且没有提供依赖漏洞扫描、SBOM 或明确的补丁自动化证据。Android 文件基线快照与恢复有测试支持,但回滚证据没有覆盖其他代理工具和外部系统。来源归属、第三方致谢、商标规则以及官方 Microsoft 组织出处均清楚,因此来源归属获满分。
README 所述的 Android 操作、结构化输出、沙箱、恢复和错误处理与给出的单元测试大体一致,CI 也覆盖 Go 测试、Python 测试、竞态检测和多语言 lint。解析器对缺失字段、不支持动作、非法速度、未知应用和 ADB 故障提供具体异常,且对连接丢失有一次重连路径,因此失败消息处理充分。扣分在于未提供 CI 运行结果,核心测试任务在没有测试文件时会成功跳过,设备集成测试默认依赖环境变量并可跳过,前端源码缺失时 lint 也会跳过。运行还依赖多个数据库、消息和存储服务以及外部模型凭据,安装说明虽明确但可用性链条较长。
目标受众和场景被明确划分为 BPO 提供商、企业、开发者以及测试、数据处理、客服和内容审核,并定义 Employer、Operator、Developer、Digital Worker 四类职责,因此受众与场景证据充分。动作解析器为 Android 工具定义了精确的动词、参数、格式和拒绝条件,平台也提供多个模型适配器及 Compose、Kind、Helm 部署路径。扣分在于仓库级能力包含 shell、网络、文件、记忆和技能执行等宽泛接口,但未给出完整的允许范围、触发优先级、冲突解决或按环境收窄权限的静态规范;Android 路径依赖 MuMu Player,而完整部署需要较新的 Go、Python、Node 及多个基础设施服务。
README 提供清晰的概览、架构、功能、快速开始、目录结构、文档索引、贡献和安全入口;安装过程列出前置条件、配置模板、两种运行模式、健康检查、默认账号警告及清理命令,因此信息架构和安装说明获满分。MIT 正文与元数据一致,维护渠道、贡献入口、安全响应渠道和已验证的组织归属清楚,因此许可与维护责任充分。扣分在于项目仍处于 pre-1.0,Evaluation Loop 明示为计划项,前端源码另行分发,稳定支持分支尚未建立;这些限制虽被披露但未形成集中、完整的限制清单。README 有近期版本记录和路线图入口,但没有提供完整变更日志或兼容性承诺。示例和故障排查有入口,未展示独立 FAQ。术语总体稳定,但 Digital Worker、Agent、技能及演化模型之间的边界仍有一定概念重叠。
平台输出被描述为可观察的逐步轨迹、结构化动作、环境反馈、结论、失败分类和可复用 Playbook,并配有 UI、API 文档和状态接口;测试也验证了结构化解析和多类错误,因此输出可用性证据较强。Cortex、Action、Memory、人工监督、沙箱回放和经验提炼的组合相对普通模型工具封装具有明确的潜在增量价值。扣分在于生产可靠性、持续改进和 82.9% 成功率等主要效益在所给材料中主要是陈述,没有附带评测方法、对照数据或结果文件;完整栈需要模型 API、多个数据服务、容器或 Kubernetes 以及可选模拟器,但没有量化运营成本、延迟、资源需求或与收益的权衡。
多数能力陈述可关联到明确的仓库区域、配置路径、测试、CI 工作流和安全政策;Android 动作格式、路径限制、恢复逻辑与故障异常还得到多个测试文件的交叉支持。README 也明确把 Evaluation Loop 标记为计划项,并区分训练式与非训练式演化。扣分在于此次仅有少量实现与测试文件,许多广泛的平台声明只能追溯到 README;生产闭环验证、可靠性提升和 82.9% 指标没有在提供的文件中附上实验方案或原始结果。技术报告、外部模型页面和其他链接未作为本次证据内容提供,因此不能据其完成独立佐证;部分愿景性语言与已验证事实的界线仍不够严格。
- 代理能力包括 shell 执行、文件删除、应用卸载、APK 安装和外部网络访问;在生产部署前应验证细粒度授权、危险操作确认、网络出口限制和审计策略。
- 示例环境包含已公开的默认账号,且模型与 Mem0 配置需要敏感凭据;对外暴露前必须轮换或移除默认凭据并确认密钥不会进入日志、轨迹或长期记忆。
- Android 恢复测试会删除基线快照之后新增的文件。应确认沙箱隔离和备份边界,避免把真实用户数据或共享设备纳入恢复范围。
- 不要把 README 中的生产验证、持续可靠性提升或 82.9% 成功率视为本次静态审查已证实的结果。
- CI 中存在条件跳过,且部分构建工具按 latest 安装;发布前应核实实际 CI 结果、依赖锁定、漏洞扫描和完整测试覆盖。
这个 Agent 能做什么,适合哪些场景?
Sico 是一个面向企业与 BPO 场景的开源数字员工构建、管理和演进平台。它由 React 前端、基于 Gin 的 Go 后端和基于 asyncio 的 Python Core 组成,经 Nginx、HTTP/SSE、gRPC 与反向 gRPC 协同运行。数字员工采用 Cortex、Action、Memory & Sense 结构,在可观察的 Sandbox 中规划并执行任务,产出包含动作、中间状态、工具结果和环境反馈的结构化轨迹。Reflector 与 Curator 会把已完成任务中的成功策略和重复失败模式整理成按项目和员工区分的 Playbook,并在后续运行时自动注入。平台支持多家模型提供商、本地 Docker Compose、Kind 与生产 Helm 部署;Android GUI 自动化还需要 MuMu Player 模拟器环境。它更适合愿意运维多服务基础设施、需要人工介入和持续改进闭环的团队,而不是只想嵌入一个轻量聊天代理的项目。
Operator 提交目标后,Execution Loop 让 Cortex–Action–Memory 栈在 Sandbox 内运行,并记录动作、工具输出、中间状态和环境反馈。Core 负责推理、LLM 编排、工具执行与经验积累;它可以使用文件 I/O、grep、shell/command、网页搜索与抓取、文档解析、长期记忆检索、计划检查或取消、报告和沙箱工具。Go Backend 提供 HTTP API、持久化、RBAC 和沙箱编排,Core 通过反向 gRPC 回调 Backend,以保存消息、更新状态并发送通知,同时保持自身无数据库状态。Evolution Loop 使用 Reflector → Curator 流程把执行轨迹提炼为每个 (project, agent) 的 Playbook,并将其注入下一次运行;这些信号也可以用于后续基础模型训练。平台还通过 Mem0、Qdrant、SeaweedFS、Redis 和 MySQL 管理短期上下文、长期事实、知识库及项目级记忆。Android Tester 可租用池化 Android 模拟器沙箱,提供 H264 实时画面、VNC、逐步轨迹和可重放运行;README 所述 Evaluation Loop 仍处于计划阶段。
- BPO 服务商需要为客户运行数据处理、客服、内容审核等持续性流程,并让 Operator 负责监控、纠正和改进数字员工。
- 企业运营团队面对界面、规则和数据格式频繁变化的流程,希望用执行轨迹和 Playbook 降低静态脚本反复失效带来的维护压力。
- 移动应用测试团队需要在隔离的 Android 模拟器中执行黑盒测试,同时保留实时画面、步骤轨迹和可重放记录。
- 企业 AI 平台团队希望通过统一 LLM Hub 接入 OpenAI、Azure OpenAI、Anthropic、Gemini、OpenRouter 或兼容接口,而不是绑定单一模型提供商。
- 开发团队需要把领域能力注册、版本化并作为数字员工的 Skills 执行,同时按项目维护知识与长期经验。
- 需要权限隔离的组织希望使用 JWT、Casbin RBAC,以及面向沙箱机器通信的 HMAC 签名请求来部署自动化服务。
这个 Agent 有哪些优点和局限?
- 不是单纯的模型与工具封装:Cortex、Action、Memory & Sense 分层,并配有项目知识、沙箱和持久化平台。
- Reflector → Curator 能把真实执行轨迹转为按项目和数字员工隔离的 Playbook,并在下一次运行中自动注入,无需每次重新训练模型。
- LLM Hub 明确支持 OpenAI、Azure OpenAI、Anthropic、Gemini、OpenRouter、OpenAI-compatible 及通用 HTTP JSON/二进制端点,降低单一模型供应商锁定。
- 执行具有结构化轨迹、隔离环境和重放能力;Android 沙箱还提供 H264 实时画面与 VNC,适合需要审计和人工介入的 GUI 工作。
- 同时提供 Docker Compose、Kind 和生产 Helm 路径,并包含 JWT、Casbin 与 HMAC 机制,覆盖从本地开发到企业部署的基础需求。
- 部署不是轻量单进程:完整 Compose 栈包含 nginx、前后端、Core、MySQL、Redis、Kafka、SeaweedFS 和 Qdrant,团队需要承担多服务运维成本。
- 除了模型 API key,还必须配置默认 LLM 和 Mem0 的 embedder/LLM 凭据;缺少这些配置无法按快速入门启动完整能力。
- Android Tester 依赖额外安装和配置 MuMu Player,其模拟器 API 服务及默认设备还需单独引导。
- Evaluation Loop 和 L1–L4 失败归因在来源中标为 planned,不能视为当前已交付能力。
- 项目要求 Go 1.25+ 与 Python 3.13+,可能高于现有企业环境版本,并带来工具链升级成本。
- 来源展示的是默认本地开发账号;若未在外部部署前轮换或删除,会形成明确的安全风险。
如何安装或部署这个 Agent?
前置条件为 Docker、Docker Compose、make,以及至少一个受支持 LLM 提供商的有效 API key。执行:
git clone https://github.com/microsoft/Sico.git
cd Sico
cp .env.example .env编辑 .env。随后在 deploy/config/llmhubs/<your-model>.yaml 创建模型配置,可从 deploy/config/llmhubs/model-template.yaml 或其他 *-template.yaml 开始,并设置 default: true。再执行:
cp deploy/config/mem0/mem0_config_template.yaml deploy/config/mem0/mem0_config.yaml编辑该文件,填写 embedder 与 LLM 凭据。本地推荐运行:
make compose-up它会构建并启动 nginx、frontend、backend、core、mysql、redis、kafka、seaweedfs 和 qdrant。若使用本地 Kind 集群,可改用 make kind-up。只有 Android Tester 需要额外安装 MuMu Player,然后依次运行 make emulator-setup、make emulator-status 和 make emulator-bootstrap。
如何使用这个 Agent?
启动 Docker Compose 后,打开 http://localhost:8080/login,使用本地开发预置账号 [email protected] 和密码 operator 登录;在对外暴露服务前必须轮换或删除该账号。可访问 http://localhost:8080/api/sico/docs/index.html 查看 API 文档,并用 curl http://localhost:8080/api/sico/health 完成首次健康检查。配置的默认 LLM 会供平台运行数字员工;Operator 在平台中给出目标后,系统执行任务、保存轨迹并积累经验,完成后的策略与失败模式会经 Reflector 和 Curator 整理到 Playbook,供同一项目和数字员工的后续运行使用。Kind 模式下可用 make kind-restart SVC=core 重建并发布单个服务,make kind-stop 停止容器但保留数据,或用 make kind-down 删除本地集群数据。
这个 Agent 与同类方案有什么区别?
相较依赖固定脚本或预定义工作流的传统自动化,Sico 把执行视为可演进能力:每次运行生成结构化轨迹,人工 Operator 可以介入,Reflector 与 Curator 再将经验整理为后续可复用的 Playbook。代价是它需要完整的多服务平台、模型与记忆配置,以及更明确的运营角色分工,而不是部署一段脚本即可使用。
常见问题
必须使用 OpenAI 模型吗?
可以完全在本地部署吗?
人类如何参与任务执行?
数字员工会自动从失败中改进吗?
运行 Android 自动化是否需要额外组件?
make emulator-bootstrap 初始化默认设备;其他运行模式不要求该组件。