--- title: "Coding Agent 下半场:从个人提效到组织级研发体系 — AgentScope Harness + Open SWE + Minions/Inspect/Cloudbot 收敛" source: wechat-mp source_url: https://mp.weixin.qq.com/s/LA1AFSjb5ffTHDA2xkv0wQ author: 阿里云云原生 / AgentScope 社区 published: 2026-06-12 ingested: 2026-06-12 type: article-summary tags: [coding-agent, agentscope, agentscope-java, harness, open-swe, stripe-minions, ramp-inspect, coinbase-cloudbot, organization-level, sandbox, draft-pr, plan-mode, tool-curation, sub-agent] sha256: 77f11ee32aa18f0862d039866162af0620cf07a7a1805c250751a43453a5b594 --- # Coding Agent 下半场 (阿里云云原生 / AgentScope 社区) ## 一、核心论点 2025 末-2026 初,**Stripe Minions / Ramp Inspect / Coinbase Cloudbot** 三家公司几乎同时公开了各自的内部 Coding Agent,**独立开发、不参考、最终收敛到几乎相同的架构**。LangChain 团队 2026-03 提炼出 **Open SWE** 开源框架。AgentScope Harness(Java 2.0)走的是**同一条路**。这是工程问题逼出来的架构收敛,不是设计选择。 ## 二、行业收敛模式(核心洞察) **为什么三家公司会收敛到同一架构?** 当 Coding Agent 从"一个人在终端用"升级成"整个团队通过 Slack/GitHub Issue 触发",你会被同一组工程问题逼到同一条路: - 沙箱隔离执行环境 - 中断后能续上之前的工作 - 接得住 Slack/GitHub/飞书各种入口 - 防止一个用户的失控循环把全公司额度烧光 ## 三、设计哲学 ### 3.1 "Meet engineers where they already work" > Open SWE README: "Elite engineering orgs like Stripe, Ramp, and Coinbase are building their own internal coding agents — Slackbots, CLIs, and web apps that meet engineers where they already work." **核心**:不让工程师学新工具,让 Agent 钻进工程师已经在用的 Slack/GitHub/IM。 ### 3.2 Isolate first, then give full permissions > "Isolate first, then give full permissions inside the boundary." **核心**:先隔离沙箱边界,边界内给足执行权限(git clone / npm install / rm -rf 都不怕)。 ### 3.3 私家车 vs 出租车 - **Claude Code** = 私家车(驾驶员 = 用户,信任边界 = 信自己机器) - **组织级 Coding Agent** = 出租车(乘客 ≠ 车主、执行在远端、需行车记录仪/GPS/紧急制动) ## 四、组织级 vs Cloud Agent SaaS | 维度 | Cloud Agent SaaS | 组织级自建 | |------|------------------|-----------| | 代表 | GitHub Copilot Coding Agent, Claude Code headless | Stripe Minions, Ramp Inspect, Coinbase Cloudbot | | 触发 | Issue assign / CI 调用 | Slack 频道、IM、GitHub Webhook | | 集成 | 标准 API | 内部系统深度集成 | | 优势 | 开箱即用 | 定制化、数据合规 | | 适合 | 标准工作流 | 强定制需求 | **AgentScope Harness 定位**:把实现这套系统的工程问题(沙箱、会话恢复、多通道接入、长期记忆)抽象成可组合基础能力,让自建团队不用从零开始。 ## 五、Open SWE(LangChain 2026-03) LangChain 把 Stripe/Ramp/Coinbase 的共同模式提炼为开源框架。核心抽象: - `FilesystemSpec` 统一接口(Modal / Daytona / Runloop 可插拔) - `check_message_queue_before_model` middleware(消息队列不打断当前推理) - `open_pr_if_needed` middleware(Agent 忘开 PR 自动补上) - AGENTS.md 作为 repo 级别指令文件 ## 六、AgentScope Harness 同位对照 | 维度 | Open SWE | AgentScope Harness | |------|----------|-------------------| | 沙箱后端 | Modal / Daytona / Runloop | DockerFilesystemSpec(Docker 容器) | | 沙箱粒度 | Per-thread | `IsolationScope.SESSION` / `.USER` | | 消息队列 | `check_message_queue_before_model` mw | `MessageQueueHook` | | 子 agent | Deep Agents `task` tool | markdown 文件声明 + `agent_spawn` | | 记忆机制 | thread 状态 | Working Set + Archive(Context Middleware) | | 沙箱快照 | persistent sandbox | Local/Oss/Redis SnapshotSpec 三档 | | 持久化 | thread state store | RedisAgentStateStore | | Plan Mode | 未提及 | 原生支持(人确认才退出 plan) | ## 七、四阶段演进路线 ### Stage 1:本机 CLI 什么都不配,`execute` 在宿主 `sh -c` 跑,状态存本地文件。 ### Stage 2:本机 + Docker 沙箱 ```java .filesystem(new DockerFilesystemSpec() .image("agentscope/coding-sandbox:latest") .isolationScope(IsolationScope.SESSION)) ``` 每个 GitHub Issue / PR / IM 对话一个临时容器。 ### Stage 3:多副本 + 分布式 ```java .filesystem(new DockerFilesystemSpec() .image("agentscope/coding-sandbox:latest") .isolationScope(IsolationScope.USER) .snapshotSpec(new OssSnapshotSpec(ossClient, "bucket", "prefix/")) .executionGuard(RedisSandboxExecutionGuard.builder(jedis) .leaseTtl(Duration.ofMinutes(30)).build())) .stateStore(RedisAgentStateStore.builder().lettuceClient(redisClient).build()) ``` 横向扩展 + 负载均衡后跑 N 个副本。 ### Stage 4:可观测与限流 Spring Boot Actuator + Prometheus + `ThreadBudgetHook` / `ModelCallLimitHook` + `FallbackModel`。 ## 八、组织级特有的工程问题 ### 8.1 多通道接入(确定性 thread ID 路由) ``` github:issue:owner/repo#42 → SHA-256 → UUID → coding agent thread dingtalk:: → SHA-256 → UUID → coding agent thread feishu:: → SHA-256 → UUID → coding agent thread ``` **同一 Issue 所有评论路由到同一 session**,对话历史自动恢复。 ### 8.2 并发控制:thread ID 同一时间只跑一个推理 `RunDispatcher` + `MessageQueueHook` 强制保证。新消息入队等下一轮开始前注入,不打断当前推理。 ### 8.3 工作区 = 人格 / 记忆 / 技能 / 子 agent 全是文件 | 产品 | 工作区指令文件 | |------|---------------| | Claude Code | CLAUDE.md | | GitHub Copilot | .github/copilot-instructions.md | | Open SWE | AGENTS.md | | AgentScope Harness | AGENTS.md + MEMORY.md + skills/ + subagents/ + knowledge/ + plans/ | **三个工程价值**: 1. 团队规范以文件形式生效 2. Agent 在用过程中越来越懂团队(MEMORY.md 周期性合并长期事实) 3. workspace 当 Git 管理(CI 验证、部署时 hydrate) ### 8.4 子 agent:markdown 文件声明 ```markdown # workspace/subagents/researcher.md --- description: 调研子 agent workspace: mode: isolated tools: [read_file, grep_files, fetch_url, web_search] --- 你是调研助手... ``` 主 Agent 调用 `agent_spawn agent_id="researcher" task="..."`,子 Agent 隔离上下文跑完,结果注入下一轮推理。 ### 8.5 Plan Mode 大改之前先想清楚。开启后 Agent 进入只读阶段,只能调读取工具 + 4 个 plan 工具,**退出 plan 需人类确认**。Coinbase Cloudbot "Agent Councils" 同理念。 ### 8.6 工具精选:500 → 15 Stripe Minions 早期 500 个工具 → "tool curation matters more than tool quantity"。Open SWE 只暴露约 15 个核心工具。Harness 内置:文件操作 + shell 执行 + 记忆检索,业务工具 `toolkit.register(...)` 按需注册。 ### 8.7 Draft PR 作为输出契约 Agent 产出 = draft PR,**永远需要人类 review 后才能 merge**。Agent 不直接改生产代码。 ## 九、引用源 - 原文:https://mp.weixin.qq.com/s/LA1AFSjb5ffTHDA2xkv0wQ - 关联:[[raw/articles/agentscope-java-2.0-enterprise-distributed-harness|AgentScope Java 2.0 实体]] - 关联:[[raw/articles/agentscope-java-harness-framework-enterprise-distributed|AgentScope Java Harness Framework 42KB]] - 关联:[[raw/articles/agentscope-builder-enterprise-self-evolving-agent-harness|AgentScope Builder]] - 关联:[[raw/articles/agent-harness-engineering-survey-2026|Agent Harness Engineering Survey]] - 关联:[[raw/articles/agent-harness-architecture-design-production-guide|Agent Harness Architecture Production Guide]] - 关联:[[raw/articles/loop-engineering-addy-osmani-challengehub|Loop Engineering]] - 关联:[[raw/articles/mxc-execution-containers-internals-origin|MXC Execution Containers]]