[{"data":1,"prerenderedAt":4077},["ShallowReactive",2],{"agent:dev-workbench-product-positioning-task-model-system-boundary\u002F":3,"agent-wiki-navigation":1245},{"id":4,"title":5,"body":6,"commentId":1234,"description":15,"draft":1235,"extension":1236,"meta":1237,"navigation":1238,"order":1187,"path":1239,"section":1240,"seo":1241,"stem":1242,"updated":1243,"__hash__":1244},"agent\u002Fagent\u002Fdev-workbench-product-positioning-task-model-system-boundary.md","智能开发人员工作台：产品定位、研发任务模型与系统边界",{"type":7,"value":8,"toc":1186},"minimark",[9,16,22,33,36,39,58,65,76,79,92,95,100,105,108,114,117,138,141,144,147,151,154,157,160,166,169,175,178,182,185,188,218,224,227,234,238,242,245,250,255,261,264,273,277,280,283,297,304,307,311,317,436,439,447,451,454,459,464,469,474,477,481,485,488,494,497,501,504,507,513,520,524,527,530,592,595,599,602,605,610,614,617,640,643,647,650,673,676,680,683,697,700,704,707,727,730,734,737,740,760,763,766,770,774,777,783,786,789,806,809,813,816,819,823,826,830,833,836,840,843,866,870,873,877,883,887,890,894,897,901,904,907,911,915,936,939,945,948,952,955,958,962,965,991,994,998,1001,1033,1036,1040,1043,1046,1090,1093,1096,1099,1105,1108],[10,11,12],"p",{},[13,14,15],"em",{},"以 WorkItem 为中心定义研发任务模型，厘清开发数字员工、确定性程序、企业系统与人的职责边界。",[10,17,18],{},[19,20,21],"strong",{},"系列：从零构建企业级 AI Agent · 第 02 篇",[10,23,24,25,32],{},"上一篇文章《",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fwww.zhizhi123.com\u002Fwiki\u002Fagent\u002Fenterprise-ai-agent-system-requirements-challenges-architecture\u002F",[30],"nofollow","企业级 AI Agent 系统：需求分析、核心挑战与架构设计目标","》讨论了企业 Agent 面临的共性问题：业务上下文、组织权限、可靠执行、长期任务、评估和审计。",[10,34,35],{},"但如果直接从这些技术问题出发，项目很容易变成一个范围不断扩大的“Agent 平台”：先搭模型网关，再做工具调用，然后加入记忆、Multi-Agent 和工作流引擎，最后却很难说清它究竟在为谁解决什么问题。",[10,37,38],{},"因此，这个项目需要一个更具体的近期载体。",[10,40,41,42,45,46,49,50,53,54,57],{},"我们选择的产品形态是",[19,43,44],{},"智能开发人员工作台","；领域边界是",[19,47,48],{},"研发全流程","；第一个主动式闭环是",[19,51,52],{},"自动处理测试阶段 Bug","；长期方向则是",[19,55,56],{},"企业级数字员工","。",[10,59,60,61,64],{},"在这个长期方向下，工作台首先要支持的不是一个抽象的“万能 Agent”，而是一个职责明确的角色：",[19,62,63],{},"开发数字员工","。它可以像团队中的开发人员一样被加入飞书群，在授权范围内接收群消息和 Bug 反馈，分析问题、设计技术方案、编写和测试代码、提交 Draft PR\u002FMR，并持续汇报任务进展。",[66,67,73],"pre",{"className":68,"code":70,"language":71,"meta":72},[69],"language-text","长期愿景：企业级数字员工体系\n               ↑\n首个角色：开发数字员工\n               ↑\n产品与治理底座：智能开发人员工作台\n               ↑\n首个闭环：测试阶段 Bug 的发现、修复与回归跟踪\n","text","",[74,75,70],"code",{"__ignoreMap":72},[10,77,78],{},"这一定位仍然留下了三个必须回答的问题：",[80,81,82,86,89],"ol",{},[83,84,85],"li",{},"为什么还需要一个开发人员工作台，而不是继续给 IDE 和聊天机器人增加功能？",[83,87,88],{},"研发任务跨越需求、代码、测试和协作系统时，系统应该用什么对象持续组织它？",[83,90,91],{},"开发数字员工如何像团队成员一样参与协作，同时保持权限、执行和责任边界？",[10,93,94],{},"本文尝试回答这三个问题，并进一步定义第一阶段真正要建设的产品。",[96,97,99],"h2",{"id":98},"一开发人员缺少的不是又一个-ai-输入框","一、开发人员缺少的不是又一个 AI 输入框",[101,102,104],"h3",{"id":103},"_11-研发工作天然分散在多个系统中","1.1 研发工作天然分散在多个系统中",[10,106,107],{},"一次真实的软件交付通常会经过如下过程：",[66,109,112],{"className":110,"code":111,"language":71,"meta":72},[69],"需求分析\n→ 技术方案设计\n→ 开发与自测\n→ Code Review\n→ 提测\n→ 测试执行\n→ 测试通过\n→ 上线准备\n→ 发布上线\n",[74,113,111],{"__ignoreMap":72},[10,115,116],{},"这条流程不会完整地存在于任何单一工具中。",[118,119,120,123,126,129,132,135],"ul",{},[83,121,122],{},"需求和 Bug 可能在云效等项目协作平台中。",[83,124,125],{},"讨论和临时反馈可能发生在飞书群。",[83,127,128],{},"代码、Commit 和 PR\u002FMR 在代码托管平台中。",[83,130,131],{},"构建、测试和部署结果在 CI\u002FCD 系统中。",[83,133,134],{},"技术方案、接口说明和操作手册分散在文档平台与代码仓库中。",[83,136,137],{},"开发人员还可能在 IDE、命令行和 Coding Agent 之间切换。",[10,139,140],{},"这些系统分别保存了一部分事实，却没有共同维护“这项研发工作现在进行到哪里、已经产生了什么、还缺少什么证据”。",[10,142,143],{},"结果是，开发人员承担了大量隐性的上下文搬运工作：从群消息中找到问题描述，到项目系统确认需求和负责人，再定位相关代码和 PR，检查 CI 与测试环境，最后回到原系统更新状态。",[10,145,146],{},"AI 可以帮助分析其中某一步，但如果它只能在一次对话中工作，仍然无法持续承担跨系统协作。",[101,148,150],{"id":149},"_12-ide聊天机器人与工作台解决的是不同问题","1.2 IDE、聊天机器人与工作台解决的是不同问题",[10,152,153],{},"IDE 和 Coding Agent 擅长操作代码：理解仓库、编辑文件、执行命令、补充测试和生成 Diff。聊天机器人擅长交互式理解、解释和生成内容。这两类产品都很重要，但它们通常以“当前会话”或“当前代码仓库”为中心。",[10,155,156],{},"研发交付却以业务任务为中心，并且持续时间可能跨越数小时甚至数天。任务会等待 Code Review、CI、测试环境、其他团队反馈或人工审批；任务状态不会因为对话结束而消失，也不能仅靠模型上下文恢复。",[10,158,159],{},"智能开发人员工作台要解决的不是“如何再提供一个调用模型的入口”，而是：",[161,162,163],"blockquote",{},[10,164,165],{},"如何让分散在需求、协作、代码、CI 和测试环境中的信息，围绕同一项研发工作持续汇聚；并让人、Agent 与企业系统在清晰边界内共同推进它。",[10,167,168],{},"因此，工作台位于各类研发工具之上，但不替代它们。",[66,170,173],{"className":171,"code":172,"language":71,"meta":72},[69],"开发人员 \u002F 测试人员 \u002F 负责人\n                 │\n                 ▼\n        智能开发人员工作台\n   任务 \u002F 上下文 \u002F 产物 \u002F 执行 \u002F 证据\n        │       │       │       │\n        ▼       ▼       ▼       ▼\n      云效     飞书   Git\u002FPR    CI\u002F环境\n                         │\n                         ▼\n                    Coding Agent\n",[74,174,172],{"__ignoreMap":72},[10,176,177],{},"它的价值不是把所有系统重新做一遍，而是提供统一的任务视角、可靠的协作状态和受控的智能执行能力。",[101,179,181],{"id":180},"_13-工作台与开发数字员工是什么关系","1.3 工作台与开发数字员工是什么关系",[10,183,184],{},"工作台不是开发数字员工的一个聊天页面，开发数字员工也不是工作台里的一项普通工具。",[10,186,187],{},"两者的关系更接近“员工”与“工作环境”：",[118,189,190,195,200,206,212],{},[83,191,192,194],{},[19,193,63],{},"是研发流程中的参与者，拥有持续身份、明确角色、职责范围和可审计的工作记录。",[83,196,197,199],{},[19,198,44],{},"是它与人协作的任务、上下文、执行和治理底座。",[83,201,202,205],{},[19,203,204],{},"飞书群","是接收信息、澄清问题和反馈进展的协作入口之一。",[83,207,208,211],{},[19,209,210],{},"云效、代码仓库和 CI\u002FCD","是它读取或更新业务事实的工作系统。",[83,213,214,217],{},[19,215,216],{},"Coding Agent","是它完成代码分析与修改时可以调用的专业执行器，而不是数字员工的全部。",[66,219,222],{"className":220,"code":221,"language":71,"meta":72},[69],"飞书群中的开发数字员工\n  ├── 接收 @消息、Bug 反馈和任务指派\n  ├── 识别意图、补充信息、反馈进展\n  └── 创建或关联 WorkItem\n                    │\n                    ▼\n          智能开发人员工作台\n  任务 \u002F 上下文 \u002F 方案 \u002F 执行 \u002F 证据 \u002F 审批\n        │            │             │\n        ▼            ▼             ▼\n      云效       Coding Agent    Git \u002F CI\n",[74,223,221],{"__ignoreMap":72},[10,225,226],{},"因此，“像员工一样”并不只是拥有一个拟人化头像或能够在群里回复消息。它至少意味着：身份长期存在，能够被分配任务，知道自己负责哪些项目，可以在任务中持续工作，遇到权限或信息不足时主动请求帮助，并对每次行动留下可追踪记录。",[10,228,229,230,233],{},"群聊只是协作入口，不是任务状态的保存位置。开发数字员工从群消息中识别出工作后，仍然要将其关联到 ",[74,231,232],{},"WorkItem","，后续的技术方案、代码修改、PR\u002FMR、测试结果和人工决定才能持续归属于同一项研发任务。",[96,235,237],{"id":236},"二产品中心不是聊天会话而是-workitem","二、产品中心不是聊天会话，而是 WorkItem",[101,239,241],{"id":240},"_21-为什么需要统一的研发任务对象","2.1 为什么需要统一的研发任务对象",[10,243,244],{},"需求、开发任务和 Bug 在外部平台中可能是不同类型的记录，但从工作台视角看，它们都代表一项需要被持续推进、产生交付物并最终验证的工作。",[10,246,247,248,57],{},"本文将这个统一的协作对象称为 ",[74,249,232],{},[10,251,252,254],{},[74,253,232],{}," 不是某条云效 Bug 的简单复制，也不是一段 Agent 对话。它是工作台内部可持久化的研发协作单元，负责把跨系统对象关联到同一条交付主线上。",[66,256,259],{"className":257,"code":258,"language":71,"meta":72},[69],"WorkItem\n├── 原始需求与验收标准\n├── 项目、模块、环境与负责人\n├── 技术方案与开发计划\n├── 分支、Commit 与 PR\u002FMR\n├── 自测、CI 与测试环境结果\n├── Code Review 意见\n├── 云效 Bug 与飞书反馈\n├── Agent 执行和修复记录\n└── 发布及最终验证证据\n",[74,260,258],{"__ignoreMap":72},[10,262,263],{},"例如，测试人员在飞书群反馈一个问题，云效中随后创建了一条 Bug，开发人员完成修复并提交 Draft PR，CI 通过后部署到测试环境。表面上这是五个系统中的多个对象，实际上它们属于同一个修复任务。",[10,265,266,267,269,270,272],{},"如果没有 ",[74,268,232],{},"，Agent 每次都要重新猜测这些对象是否相关；如果有 ",[74,271,232],{},"，系统就可以保存它们的确定性关联、当前状态和验证证据。",[101,274,276],{"id":275},"_22-workitem-不是新的外部事实来源","2.2 WorkItem 不是新的外部事实来源",[10,278,279],{},"建立统一任务模型时，一个常见误区是试图用工作台取代现有研发系统。",[10,281,282],{},"工作台不应该宣布自己拥有所有事实：",[118,284,285,288,291,294],{},[83,286,287],{},"云效仍然是需求和 Bug 原始记录及业务状态的重要来源。",[83,289,290],{},"Git 平台仍然保存分支、Commit、PR\u002FMR 和 Review 事实。",[83,292,293],{},"CI\u002FCD 系统仍然保存构建、测试和部署结果。",[83,295,296],{},"飞书仍然保存原始讨论与反馈消息。",[10,298,299,300,303],{},"工作台保存的是跨系统的",[19,301,302],{},"协调事实","：这些外部对象属于哪个任务、当前流程等待什么、某次判断依据了哪些上下文、某项操作是否获得批准，以及什么证据支持任务进入下一状态。",[10,305,306],{},"这意味着 WorkItem 既不是简单的数据镜像，也不是凌驾于所有系统之上的“超级主数据”。它更像一条可追踪的研发协作主线：引用外部事实，保存必要快照，并对跨系统流程负责。",[101,308,310],{"id":309},"_23-核心领域对象","2.3 核心领域对象",[10,312,313,314,316],{},"围绕 ",[74,315,232],{},"，工作台至少需要以下对象：",[318,319,320,333],"table",{},[321,322,323],"thead",{},[324,325,326,330],"tr",{},[327,328,329],"th",{},"对象",[327,331,332],{},"主要职责",[334,335,336,347,357,366,376,386,396,406,416,426],"tbody",{},[324,337,338,344],{},[339,340,341],"td",{},[74,342,343],{},"Project",[339,345,346],{},"描述项目、代码仓库、模块、环境、团队与外部系统配置",[324,348,349,354],{},[339,350,351],{},[74,352,353],{},"DigitalEmployee",[339,355,356],{},"描述数字员工的角色、身份、职责、授权项目、工具能力与运行策略",[324,358,359,363],{},[339,360,361],{},[74,362,232],{},[339,364,365],{},"表示需求、开发任务或 Bug，以及当前生命周期状态",[324,367,368,373],{},[339,369,370],{},[74,371,372],{},"Context",[339,374,375],{},"保存一次理解或执行实际使用的需求、代码、文档、日志和历史信息",[324,377,378,383],{},[339,379,380],{},[74,381,382],{},"Artifact",[339,384,385],{},"表示技术方案、代码变更、Commit、PR\u002FMR、测试报告等产物",[324,387,388,393],{},[339,389,390],{},[74,391,392],{},"Run",[339,394,395],{},"记录一次 Workflow、Agent、Coding Agent 或工具执行",[324,397,398,403],{},[339,399,400],{},[74,401,402],{},"Evidence",[339,404,405],{},"表示编译、测试、CI、Review、部署和回归等验证结果",[324,407,408,413],{},[339,409,410],{},[74,411,412],{},"Approval",[339,414,415],{},"记录人工确认点、审批对象、结论及适用范围",[324,417,418,423],{},[339,419,420],{},[74,421,422],{},"DomainEvent",[339,424,425],{},"记录任务状态变化和接收到的外部事件",[324,427,428,433],{},[339,429,430],{},[74,431,432],{},"Memory",[339,434,435],{},"保存有来源、作用域、验证状态和生命周期的可复用经验",[10,437,438],{},"这些对象并不是为了制造复杂的数据模型，而是为了避免把所有内容都塞进一段对话历史或一个巨大的任务 JSON 中。",[10,440,441,443,444,446],{},[74,442,232],{}," 仍然是业务中心，",[74,445,353],{}," 则是任务参与者。一个开发数字员工可以同时参与多个 WorkItem，一个 WorkItem 也可能由开发人员、开发数字员工、测试人员和负责人共同推进。系统需要分别记录任务归属、当前执行者和最终责任人，不能因为数字员工执行了某一步，就模糊人的责任边界。",[101,448,450],{"id":449},"_24-contextartifactevidence-和-memory-不能混为一谈","2.4 Context、Artifact、Evidence 和 Memory 不能混为一谈",[10,452,453],{},"这四类对象看起来相近，但承担不同职责。",[10,455,456,458],{},[74,457,372],{}," 回答“这次判断使用了什么”。例如需求描述、相关代码片段、项目规范、日志和历史 Bug。它应当记录来源、获取时间和适用范围，以便之后解释 Agent 为什么得出某个结论。",[10,460,461,463],{},[74,462,382],{}," 回答“这次工作产生了什么”。例如技术方案、修改后的代码、Commit、Draft PR、测试用例和报告。",[10,465,466,468],{},[74,467,402],{}," 回答“凭什么认为某个条件已经满足”。编译成功、单元测试通过、CI 检查结果、部署记录、Code Review 结论和测试回归结果，都属于证据。",[10,470,471,473],{},[74,472,432],{}," 回答“哪些经验可以在未来复用”。它不应该自动等于历史对话或历史修复方案。只有来源明确、经过验证且仍在有效期内的经验，才适合晋升为团队记忆。",[10,475,476],{},"这种区分还有一个实际意义：证据必须绑定明确的对象版本。某个 Commit 上通过的测试，不能自动证明后续修改后的 Commit 仍然正确；针对旧 Diff 的审批，也不能无条件覆盖新的代码变更。",[96,478,480],{"id":479},"三研发任务的状态不是一个完成按钮","三、研发任务的状态不是一个“完成”按钮",[101,482,484],{"id":483},"_31-通用生命周期与业务子流程","3.1 通用生命周期与业务子流程",[10,486,487],{},"不同团队会使用不同的研发状态。工作台不应一开始就强迫所有团队接受一套僵硬流程，但仍然需要一个最小的内部生命周期，用于判断任务是正在推进、等待外部结果、被阻塞还是已经结束。",[66,489,492],{"className":490,"code":491,"language":71,"meta":72},[69],"待处理 → 处理中 → 等待外部结果 → 已完成\n              ├── 被阻塞\n              └── 已取消\n",[74,493,491],{"__ignoreMap":72},[10,495,496],{},"在这层通用状态下，可以针对不同任务类型建立更具体的业务子流程，例如需求交付、技术方案评审或 Bug 修复。",[101,498,500],{"id":499},"_32-测试阶段-bug-闭环","3.2 测试阶段 Bug 闭环",[10,502,503],{},"第一个重点场景发生在 Code Review 和上线之间。开发人员完成 CR 并提测后，测试人员可能在飞书群反馈问题，也可能直接在云效创建或更新 Bug。",[10,505,506],{},"完整的处理过程是：",[66,508,511],{"className":509,"code":510,"language":71,"meta":72},[69],"测试反馈或云效 Bug\n→ 识别、去重与关联\n→ 问题分析和代码修复\n→ 自测\n→ 必要的增量 Code Review\n→ 部署测试环境\n→ 将 Bug 标记为“已修复”\n→ 测试人员回归验证\n├── 通过：关闭 Bug\n└── 失败：重新打开 Bug，恢复原修复任务\n",[74,512,510],{"__ignoreMap":72},[10,514,515,516,519],{},"“已修复”也不等于“已关闭”。前者表达开发侧已经提供候选修复，后者表达测试回归已经确认问题解决。类似的区别在成熟工作项系统中也普遍存在：例如 Azure DevOps 将 ",[74,517,518],{},"Resolved"," 类状态用于“工作完成但等待验证”的阶段，而不是直接视为最终关闭。",[101,521,523],{"id":522},"_33-状态变化必须由证据支持","3.3 状态变化必须由证据支持",[10,525,526],{},"如果工作台只是让 Agent 修改状态，它并不会比普通自动化更可信。",[10,528,529],{},"每个关键状态变化都应有明确的进入条件：",[318,531,532,542],{},[321,533,534],{},[324,535,536,539],{},[327,537,538],{},"状态变化",[327,540,541],{},"最小证据示例",[334,543,544,552,560,568,576,584],{},[324,545,546,549],{},[339,547,548],{},"开始修复",[339,550,551],{},"已确认问题归属、目标项目和代码仓库",[324,553,554,557],{},[339,555,556],{},"创建 Draft PR\u002FMR",[339,558,559],{},"Diff、变更说明、自测结果与剩余风险",[324,561,562,565],{},[339,563,564],{},"等待测试回归",[339,566,567],{},"必要检查通过、代码已部署至目标测试环境",[324,569,570,573],{},[339,571,572],{},"标记为已修复",[339,574,575],{},"云效更新结果得到确认，且关联正确版本",[324,577,578,581],{},[339,579,580],{},"关闭 Bug",[339,582,583],{},"测试人员或授权系统给出回归通过结果",[324,585,586,589],{},[339,587,588],{},"重新打开",[339,590,591],{},"回归失败记录及失败版本、环境和现象",[10,593,594],{},"因此，“Agent 已执行”“代码已生成”或“PR 已创建”都不能单独代表任务完成。任务完成必须由业务可接受的结果和可追踪证据共同定义。",[96,596,598],{"id":597},"四谁负责判断谁负责执行谁保存最终事实","四、谁负责判断，谁负责执行，谁保存最终事实",[10,600,601],{},"企业 Agent 系统最重要的边界之一，是不要把所有职责都交给模型。",[10,603,604],{},"一个较稳定的原则是：",[161,606,607],{},[10,608,609],{},"模型提出判断和行动建议，确定性程序负责验证与执行约束，企业业务系统保存各自领域的最终事实，人在高风险或高歧义节点负责决定。",[101,611,613],{"id":612},"_41-模型和-agent-适合处理什么","4.1 模型和 Agent 适合处理什么",[10,615,616],{},"模型擅长处理语义理解和开放性问题，例如：",[118,618,619,622,625,628,631,634,637],{},[83,620,621],{},"从飞书消息中判断是否包含 Bug 反馈。",[83,623,624],{},"从需求、代码、日志和文档中提取相关上下文。",[83,626,627],{},"识别可能重复或相关的问题。",[83,629,630],{},"分析候选原因并形成修复计划。",[83,632,633],{},"调用 Coding Agent 修改代码、补充测试。",[83,635,636],{},"总结 Diff、测试结果、风险和待确认事项。",[83,638,639],{},"为开发人员提供下一步行动建议。",[10,641,642],{},"这些输出通常具有概率性。即使结果看起来合理，也需要通过权限、规则、测试或人工评审验证。",[101,644,646],{"id":645},"_42-确定性程序必须承担什么","4.2 确定性程序必须承担什么",[10,648,649],{},"以下能力不应依赖模型“记住”或“自觉遵守”：",[118,651,652,655,658,661,664,667,670],{},[83,653,654],{},"外部事件验签、接收、去重和顺序控制。",[83,656,657],{},"WorkItem 状态机与合法状态转换。",[83,659,660],{},"用户身份、服务身份和权限检查。",[83,662,663],{},"项目、仓库、分支、Commit、PR\u002FMR 和 CI 的确定性关联。",[83,665,666],{},"外部 API 调用、幂等键、重试和结果确认。",[83,668,669],{},"审批检查点、超时、取消和恢复。",[83,671,672],{},"证据完整性以及验收条件判断。",[10,674,675],{},"例如，当创建 Draft PR 的请求超时，系统不能简单重试，否则可能创建两个 PR。正确做法是先查询外部系统，确认操作是否已经成功，再决定是否补偿或重试。",[101,677,679],{"id":678},"_43-企业系统负责什么","4.3 企业系统负责什么",[10,681,682],{},"工作台不应绕开现有企业系统的规则。",[118,684,685,688,691,694],{},[83,686,687],{},"云效决定 Bug 是否真的更新成功，以及当前业务状态是什么。",[83,689,690],{},"Git 平台决定 Commit、PR\u002FMR、Review 和合并状态。",[83,692,693],{},"CI\u002FCD 系统决定某次构建、测试和部署是否成功。",[83,695,696],{},"身份系统决定用户和服务账号的有效身份与授权范围。",[10,698,699],{},"工作台可以编排这些系统，但不能用自己的推断伪造外部成功。",[101,701,703],{"id":702},"_44-人必须保留哪些决定","4.4 人必须保留哪些决定",[10,705,706],{},"第一阶段至少应保留以下人工检查点：",[118,708,709,712,715,718,721,724],{},[83,710,711],{},"需求存在重大歧义或验收标准不足。",[83,713,714],{},"Agent 请求访问新的仓库、环境或敏感数据。",[83,716,717],{},"代码修改影响高风险模块。",[83,719,720],{},"测试证据不足，或者自动化检查结果互相冲突。",[83,722,723],{},"PR\u002FMR 合并和生产环境发布。",[83,725,726],{},"是否将一次修复经验晋升为团队长期记忆。",[10,728,729],{},"初期系统只创建 Draft PR\u002FMR，不自动合并，也不自动发布生产环境。自主程度应当由任务风险、证据质量和组织策略共同决定，而不是由 Agent 能否调用某个工具决定。",[101,731,733],{"id":732},"_45-数字员工需要身份职责与授权","4.5 数字员工需要身份、职责与授权",[10,735,736],{},"开发数字员工要进入飞书群并参与真实项目，首先需要成为企业系统中可识别、可约束的主体。",[10,738,739],{},"它的身份至少包含三个层次：",[118,741,742,748,754],{},[83,743,744,747],{},[19,745,746],{},"协作身份","：在飞书中以明确的数字员工身份加入授权群聊，接收 @消息、任务指派或经过配置的事件，并向群内反馈进展。",[83,749,750,753],{},[19,751,752],{},"业务角色","：作为“开发”参与指定项目，能够设计技术方案、分析和修复问题、编写代码并提交 Draft PR\u002FMR。",[83,755,756,759],{},[19,757,758],{},"系统凭证","：通过受限的服务身份访问云效、代码仓库、CI\u002FCD 和文档系统，不直接继承某个开发人员的全部权限。",[10,761,762],{},"身份存在不代表拥有无限访问权。系统仍然需要明确它可以加入哪些群、处理哪些项目、读取哪些仓库、调用哪些工具、执行到什么阶段，以及哪些动作必须由人确认。",[10,764,765],{},"同样，开发数字员工也不应默认处理群内所有内容。消息是否触发任务，可以由 @提及、指定群规则、明确任务指令或已配置事件共同决定；原始消息、触发原因和后续回复都应关联到对应 WorkItem。这样它既能像员工一样参与日常协作，又不会退化成监听所有聊天内容、凭自己判断任意执行的机器人。",[96,767,769],{"id":768},"五外部系统的复杂性应该停留在适配层","五、外部系统的复杂性应该停留在适配层",[101,771,773],{"id":772},"_51-用-provider-隔离平台差异","5.1 用 Provider 隔离平台差异",[10,775,776],{},"工作台可以定义一组面向领域的接口：",[66,778,781],{"className":779,"code":780,"language":71,"meta":72},[69],"WorkItemProvider       → 云效等需求与缺陷系统\nCollaborationProvider  → 飞书等协作系统\nRepositoryProvider     → GitLab、Codeup、GitHub 等代码平台\nPipelineProvider       → CI\u002FCD 与测试环境\nCodingAgentProvider    → Codex 或其他成熟 Coding Agent\n",[74,782,780],{"__ignoreMap":72},[10,784,785],{},"这些接口不应追求抹平所有平台能力，而应围绕当前用例提供最小、稳定的语义。例如核心层关心的是“获取某项目更新的 Bug”“关联外部工作项”“将 Bug 标记为已修复”，而不是某家平台具体使用了哪条 URL。",[10,787,788],{},"适配层还要负责：",[118,790,791,794,797,800,803],{},[83,792,793],{},"外部标识映射。",[83,795,796],{},"原始状态与内部状态的转换。",[83,798,799],{},"Webhook、轮询和 API 响应的统一事件化。",[83,801,802],{},"限流、重试与错误分类。",[83,804,805],{},"保留原始事件和来源，支持审计与问题追踪。",[10,807,808],{},"这种边界不仅方便未来接入其他平台，更重要的是保护 WorkItem 生命周期不被某个供应商的接口模型绑架。",[96,810,812],{"id":811},"六工作台的信息架构应该映射领域模型","六、工作台的信息架构应该映射领域模型",[10,814,815],{},"如果产品中心是 WorkItem，那么页面结构也应该围绕研发任务，而不是围绕技术组件或 Agent 名称设计。",[10,817,818],{},"第一阶段可以包含以下区域：",[101,820,822],{"id":821},"_61-工作台概览","6.1 工作台概览",[10,824,825],{},"展示人和开发数字员工当前需要关注的研发任务：处理中、等待 Review、等待 CI、等待测试回归、被阻塞和最近完成。概览页首先回答“现在有哪些事情需要处理、正在由谁处理”，而不是展示模型调用次数。",[101,827,829],{"id":828},"_62-数字员工","6.2 数字员工",[10,831,832],{},"首版只提供一个“开发”数字员工角色，展示其工作身份、职责说明、授权项目和群聊、可用工具、当前任务、等待事项、近期执行和人工接管入口。",[10,834,835],{},"这里不是创建任意 Agent 的市场，也不需要一开始就支持复杂的角色编排。它首先要让团队看清楚：这个数字员工是谁，能做什么，正在做什么，为什么暂停，以及人如何接管。",[101,837,839],{"id":838},"_63-研发任务","6.3 研发任务",[10,841,842],{},"提供 WorkItem 列表和详情页。详情页集中展示：",[118,844,845,848,851,854,857,860,863],{},[83,846,847],{},"当前状态、负责人和下一步动作。",[83,849,850],{},"需求、Bug 和原始反馈。",[83,852,853],{},"关联分支、Commit、PR\u002FMR 和环境。",[83,855,856],{},"时间线。",[83,858,859],{},"产物和证据。",[83,861,862],{},"Agent 与工具执行记录。",[83,864,865],{},"人工审批及其适用版本。",[101,867,869],{"id":868},"_64-bug-闭环","6.4 Bug 闭环",[10,871,872],{},"这是围绕测试阶段建立的业务视图，重点呈现从发现、修复、标记已修复到回归关闭或重新打开的全过程。它不是另一套任务数据，而是 WorkItem 在特定业务流程下的视图。",[101,874,876],{"id":875},"_65-执行记录","6.5 执行记录",[10,878,879,880,882],{},"展示 Workflow、Agent、Coding Agent 和工具调用产生的 ",[74,881,392],{},"，包括输入上下文、使用的权限、过程日志、产物、耗时、成本与结果。",[101,884,886],{"id":885},"_66-项目上下文","6.6 项目上下文",[10,888,889],{},"管理项目、模块、代码仓库、环境、团队、规范与上下文来源。它决定一个 WorkItem 在执行时可以访问什么，以及不同信息如何组合。",[101,891,893],{"id":892},"_67-连接与集成","6.7 连接与集成",[10,895,896],{},"集中管理云效、飞书、Git、CI 和 Coding Agent。当前已实现的云效连接配置应归入这里，而不应成为整个工作台的首页或产品中心。",[101,898,900],{"id":899},"_68-治理","6.8 治理",[10,902,903],{},"逐步加入身份、权限策略、审批规则、审计、记忆和评估。第一阶段可以只提供必要入口，不必提前建设一个完整治理平台。",[10,905,906],{},"这套信息架构背后的原则是：导航映射业务概念，技术能力服务于任务。Timeline、Evidence 和 Approval 是同一个 WorkItem 的不同观察角度，不应被拆成互不相关的功能孤岛。",[96,908,910],{"id":909},"七第一阶段应该做到什么程度","七、第一阶段应该做到什么程度",[101,912,914],{"id":913},"_71-iteration-0先建立没有-agent-也能运行的领域骨架","7.1 Iteration 0：先建立没有 Agent 也能运行的领域骨架",[10,916,917,918,920,921,920,923,920,925,920,927,920,929,920,931,920,933,935],{},"第一阶段首先实现 ",[74,919,343],{},"、",[74,922,353],{},[74,924,232],{},[74,926,382],{},[74,928,402],{},[74,930,412],{},[74,932,392],{},[74,934,422],{},"、状态流和时间线，外部平台可以使用模拟适配器。此时的开发数字员工可以先由模拟执行器驱动，不必等待完整 Agent 能力才能验证任务归属、协作和状态模型。",[10,937,938],{},"退出条件不是“页面已经搭好”，而是无需模型参与，也能够完整模拟以下过程：",[66,940,943],{"className":941,"code":942,"language":71,"meta":72},[69],"开发 → Code Review → 提测 → 测试发现 Bug\n→ 修复 → 标记已修复 → 回归关闭或重新打开\n",[74,944,942],{"__ignoreMap":72},[10,946,947],{},"这一步能验证领域模型是否稳定，也能避免核心业务状态被某个 Agent 框架或外部平台结构主导。",[101,949,951],{"id":950},"_72-iteration-1从任务到可验证的-draft-prmr","7.2 Iteration 1：从任务到可验证的 Draft PR\u002FMR",[10,953,954],{},"随后接入成熟 Coding Agent，实现任务上下文组装、隔离工作区、代码修改、测试执行、Diff 和证据收集，并在人工确认后创建 Draft PR\u002FMR。",[10,956,957],{},"退出条件是：一个预置任务能够产生可审查的 Draft PR\u002FMR，并附带测试证据、变更说明和剩余风险，而不是只生成一段代码。",[101,959,961],{"id":960},"_73-iteration-2接通真实的主动式-bug-闭环","7.3 Iteration 2：接通真实的主动式 Bug 闭环",[10,963,964],{},"最后让开发数字员工以明确身份接入飞书、云效、代码平台与 CI\u002FCD：",[118,966,967,970,973,976,979,982,985,988],{},[83,968,969],{},"在授权群聊中接收 @消息、Bug 反馈或任务指派。",[83,971,972],{},"从飞书反馈或云效事件中发现问题，并创建或关联 WorkItem。",[83,974,975],{},"对重复事件和重复问题进行去重、关联。",[83,977,978],{},"触发受控的分析与修复。",[83,980,981],{},"设计技术方案或修复方案，必要时向人补充提问。",[83,983,984],{},"跟踪必要的增量 CR、CI 和测试环境部署。",[83,986,987],{},"满足条件后将 Bug 标记为已修复。",[83,989,990],{},"等待测试人员回归，通过则关闭，失败则重新打开并恢复原任务。",[10,992,993],{},"退出条件包括：重复事件不会创建重复任务；进程重启不会丢失状态；外部结果不确定时能够先查询确认；回归失败后可以从已有上下文和证据继续处理。",[96,995,997],{"id":996},"八第一阶段明确不做什么","八、第一阶段明确不做什么",[10,999,1000],{},"为了让产品边界保持清晰，第一阶段不追求以下目标：",[118,1002,1003,1006,1009,1012,1015,1018,1021,1024,1027,1030],{},[83,1004,1005],{},"不重新开发一个完整的项目管理、代码托管或 CI\u002FCD 平台。",[83,1007,1008],{},"不在首版同时设计多个数字员工角色，先验证“开发”这一类角色。",[83,1010,1011],{},"不从零开发完整 Coding Agent，而是通过适配器接入成熟执行器。",[83,1013,1014],{},"不让聊天历史承担任务状态和长期流程恢复。",[83,1016,1017],{},"不因为技术上能调用工具，就默认允许自主执行。",[83,1019,1020],{},"不为了展示 Multi-Agent 而人为拆分多个角色。",[83,1022,1023],{},"不自动合并 PR\u002FMR，不自动发布生产环境。",[83,1025,1026],{},"不把 Agent 推测直接写成企业事实或团队长期记忆。",[83,1028,1029],{},"不在缺少证据时把“已执行”解释成“已完成”。",[83,1031,1032],{},"不提前把暂定框架和技术选型写成不可替换的系统边界。",[10,1034,1035],{},"首版真正需要证明的是：以 WorkItem 为中心的任务模型，能否让跨系统研发协作持续、可控、可恢复和可验证。",[96,1037,1039],{"id":1038},"九总结工作台是研发数字员工的任务底座","九、总结：工作台是研发数字员工的任务底座",[10,1041,1042],{},"智能开发人员工作台并不是给现有后台加一个 AI 对话框，也不是把云效、飞书、代码仓库和 CI 页面集中放进同一个导航栏。它要支撑的第一个真实角色，是能够进入团队协作环境并持续承担研发任务的开发数字员工。",[10,1044,1045],{},"它的核心是建立一条跨系统、跨阶段的研发任务主线：",[118,1047,1048,1054,1059,1064,1069,1074,1079,1084],{},[83,1049,1050,1051,1053],{},"用 ",[74,1052,232],{}," 表示需要持续推进的工作。",[83,1055,1050,1056,1058],{},[74,1057,372],{}," 记录判断所依据的信息。",[83,1060,1050,1061,1063],{},[74,1062,382],{}," 保存过程中产生的交付物。",[83,1065,1050,1066,1068],{},[74,1067,392],{}," 记录人、Agent 和工具执行了什么。",[83,1070,1050,1071,1073],{},[74,1072,402],{}," 证明状态为什么可以向前推进。",[83,1075,1050,1076,1078],{},[74,1077,412],{}," 保留必要的人工决定。",[83,1080,1050,1081,1083],{},[74,1082,422],{}," 连接外部变化和内部生命周期。",[83,1085,1086,1087,1089],{},"用经过验证的 ",[74,1088,432],{}," 支持未来任务，而不是积累不可控的历史猜测。",[10,1091,1092],{},"在这个模型中，模型和 Agent 提供理解、推理与候选行动；确定性程序维护状态、权限、幂等和验收条件；企业系统保存各自领域的最终事实；人负责高风险、高歧义和最终责任节点。",[10,1094,1095],{},"开发数字员工可以在飞书中接收任务和反馈，设计技术方案，调用 Coding Agent 编写与测试代码，提交 Draft PR\u002FMR，并在等待 Review、CI 或测试回归期间持续跟踪任务。工作台则让它的身份、权限、上下文、行动和结果始终处于可见、可控和可审计的状态。",[10,1097,1098],{},"只有先建立这样的任务底座，自动修复测试阶段 Bug 才不会退化成一段脆弱的自动化脚本，研发 Agent 也才可能从一次性助手逐步演进为能够长期参与企业协作的数字员工。完成“开发”这一角色的验证后，同一套底座才有可能扩展到测试、运维或其他企业数字员工。",[10,1100,1101,1102],{},"下一篇将继续讨论一个更具体的问题：",[19,1103,1104],{},"研发流程中哪些环节应该使用 Workflow，哪些应该交给 Agent？",[96,1106,1107],{"id":1107},"参考资料",[80,1109,1110,1116,1124,1132,1146,1154,1162,1170,1178],{},[83,1111,1112,1115],{},[26,1113,31],{"href":28,"rel":1114},[30]," — 本系列首篇，介绍企业 Agent 的需求、挑战、架构目标和项目总体定位。",[83,1117,1118,1123],{},[26,1119,1122],{"href":1120,"rel":1121},"https:\u002F\u002Fwww.zhizhi123.com\u002Fblog\u002F2026\u002F10\u002F08\u002Fai-assisted-dev-workflow\u002F",[30],"AI 辅助研发工作流"," — 从研发实践角度讨论需求、设计、开发、Review 与交付过程。",[83,1125,1126,1131],{},[26,1127,1130],{"href":1128,"rel":1129},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fdevops\u002Fboards\u002Fwork-items\u002Fabout-work-items",[30],"Microsoft Learn：About work items and work item types"," — 工作项类型、状态、历史以及与开发对象关联的官方说明。",[83,1133,1134,1139,1140,920,1142,1145],{},[26,1135,1138],{"href":1136,"rel":1137},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fdevops\u002Forganizations\u002Fsettings\u002Fwork\u002Fcustomize-process-workflow",[30],"Microsoft Learn：Customize the workflow"," — 工作项状态流及 ",[74,1141,518],{},[74,1143,1144],{},"Completed"," 等状态类别。",[83,1147,1148,1153],{},[26,1149,1152],{"href":1150,"rel":1151},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fpull-requests\u002Fget-started\u002Fabout-pull-requests",[30],"GitHub Docs：About pull requests"," — Pull Request 在代码讨论、Review 与合并流程中的作用。",[83,1155,1156,1161],{},[26,1157,1160],{"href":1158,"rel":1159},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fpull-requests\u002Freference\u002Fstatus-checks",[30],"GitHub Docs：Status checks"," — 构建、测试、代码扫描和部署检查如何为变更提供验证信号。",[83,1163,1164,1169],{},[26,1165,1168],{"href":1166,"rel":1167},"https:\u002F\u002Fcloudevents.io\u002F",[30],"CloudEvents Specification"," — 跨系统事件的通用描述规范。",[83,1171,1172,1177],{},[26,1173,1176],{"href":1174,"rel":1175},"https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002F",[30],"OpenTelemetry Documentation"," — Trace、Metric 和 Log 等可观测性基础。",[83,1179,1180,1185],{},[26,1181,1184],{"href":1182,"rel":1183},"https:\u002F\u002Fmodelcontextprotocol.io\u002F",[30],"Model Context Protocol"," — Agent 访问工具和上下文资源的标准化协议；它不替代业务状态、权限和验收流程。",{"title":72,"searchDepth":1187,"depth":1187,"links":1188},2,[1189,1195,1201,1206,1213,1216,1226,1231,1232,1233],{"id":98,"depth":1187,"text":99,"children":1190},[1191,1193,1194],{"id":103,"depth":1192,"text":104},3,{"id":149,"depth":1192,"text":150},{"id":180,"depth":1192,"text":181},{"id":236,"depth":1187,"text":237,"children":1196},[1197,1198,1199,1200],{"id":240,"depth":1192,"text":241},{"id":275,"depth":1192,"text":276},{"id":309,"depth":1192,"text":310},{"id":449,"depth":1192,"text":450},{"id":479,"depth":1187,"text":480,"children":1202},[1203,1204,1205],{"id":483,"depth":1192,"text":484},{"id":499,"depth":1192,"text":500},{"id":522,"depth":1192,"text":523},{"id":597,"depth":1187,"text":598,"children":1207},[1208,1209,1210,1211,1212],{"id":612,"depth":1192,"text":613},{"id":645,"depth":1192,"text":646},{"id":678,"depth":1192,"text":679},{"id":702,"depth":1192,"text":703},{"id":732,"depth":1192,"text":733},{"id":768,"depth":1187,"text":769,"children":1214},[1215],{"id":772,"depth":1192,"text":773},{"id":811,"depth":1187,"text":812,"children":1217},[1218,1219,1220,1221,1222,1223,1224,1225],{"id":821,"depth":1192,"text":822},{"id":828,"depth":1192,"text":829},{"id":838,"depth":1192,"text":839},{"id":868,"depth":1192,"text":869},{"id":875,"depth":1192,"text":876},{"id":885,"depth":1192,"text":886},{"id":892,"depth":1192,"text":893},{"id":899,"depth":1192,"text":900},{"id":909,"depth":1187,"text":910,"children":1227},[1228,1229,1230],{"id":913,"depth":1192,"text":914},{"id":950,"depth":1192,"text":951},{"id":960,"depth":1192,"text":961},{"id":996,"depth":1187,"text":997},{"id":1038,"depth":1187,"text":1039},{"id":1107,"depth":1187,"text":1107},"wiki:agent:dev-workbench-product-positioning-task-model-system-boundary",false,"md",{},true,"\u002Fagent\u002Fdev-workbench-product-positioning-task-model-system-boundary","企业级 Agent",{"title":5,"description":15},"agent\u002Fdev-workbench-product-positioning-task-model-system-boundary","2026-11-10","h6kk--ZGBjDlyQHKahrN37Qt724TWSmwqmmpdzfPGDM",[1246,3229],{"id":1247,"title":31,"body":1248,"commentId":3221,"description":1254,"draft":1235,"extension":1236,"meta":3222,"navigation":1238,"order":3223,"path":3224,"section":1240,"seo":3225,"stem":3226,"updated":3227,"__hash__":3228},"agent\u002Fagent\u002Fenterprise-ai-agent-system-requirements-challenges-architecture.md",{"type":7,"value":1249,"toc":3178},[1250,1255,1260,1264,1267,1270,1273,1276,1281,1285,1288,1291,1298,1301,1315,1318,1323,1326,1358,1364,1367,1371,1374,1377,1406,1409,1414,1417,1420,1425,1428,1432,1435,1438,1442,1449,1466,1469,1477,1480,1487,1490,1595,1598,1601,1606,1609,1613,1616,1620,1623,1626,1629,1632,1649,1652,1659,1663,1666,1669,1672,1675,1678,1681,1695,1700,1707,1711,1714,1717,1720,1723,1726,1731,1738,1742,1749,1752,1755,1758,1765,1769,1772,1777,1780,1785,1788,1793,1796,1801,1804,1807,1810,1814,1817,1821,1824,1827,1829,1846,1849,1852,1872,1875,1880,1883,1886,1890,1893,1896,1898,1912,1915,1921,1927,1930,1933,1936,1939,1943,1946,1949,1952,1972,1975,1992,1995,1998,2001,2006,2009,2014,2017,2022,2025,2030,2033,2039,2042,2045,2049,2052,2055,2080,2083,2088,2091,2094,2111,2114,2118,2121,2124,2147,2150,2155,2158,2163,2166,2171,2174,2179,2182,2185,2190,2194,2197,2199,2216,2219,2222,2245,2248,2259,2262,2265,2270,2273,2277,2280,2283,2288,2291,2294,2297,2303,2309,2315,2318,2322,2325,2328,2390,2393,2396,2399,2404,2407,2410,2414,2417,2422,2425,2428,2434,2437,2441,2444,2450,2453,2485,2489,2494,2497,2502,2505,2510,2513,2516,2520,2526,2529,2532,2536,2630,2633,2637,2640,2644,2647,2664,2667,2671,2674,2697,2700,2704,2707,2730,2733,2737,2740,2760,2764,2767,2877,2880,2883,2885,2888,2891,2897,2903,2909,2915,2921,2927,2933,2939,2943,2946,2949,2952,2957,2960,2965,2968,2973,2976,2981,2984,2989,2992,2997,3000,3003,3020,3024,3027,3032,3035,3038,3041,3070,3073,3076,3079,3082,3087,3089,3092,3167,3170,3175],[10,1251,1252],{},[13,1253,1254],{},"以智能开发人员工作台为近期实践载体，探索研发任务、主动式 Bug 闭环与企业级数字员工的演进路径。",[10,1256,1257],{},[19,1258,1259],{},"系列：从零构建企业级 AI Agent · 第 01 篇",[96,1261,1263],{"id":1262},"一引言通用-agent-已经很强为什么还要自己开发","一、引言：通用 Agent 已经很强，为什么还要自己开发？",[10,1265,1266],{},"随着大模型能力不断提升，AI Agent 正在从简单的对话助手，演进为能够理解任务、调用工具、执行操作的智能系统。",[10,1268,1269],{},"今天，通用 Agent 已经能够完成相当复杂的工作，例如编写代码、分析文档、搜索资料、操作软件，甚至连续执行多步骤任务。",[10,1271,1272],{},"与此同时，LangGraph、OpenAI Agents SDK 等开发框架，以及各类企业 Agent 平台，也在不断降低 Agent 的开发门槛。",[10,1274,1275],{},"这引出了一个值得思考的问题：",[10,1277,1278],{},[19,1279,1280],{},"既然通用 Agent 已经如此强大，企业为什么还需要建设自己的 Agent？",[101,1282,1284],{"id":1283},"_11-从研发全流程与测试反馈说起","1.1 从研发全流程与测试反馈说起",[10,1286,1287],{},"后端研发通常经历需求分析、技术方案设计、开发与自测、Code Review、提测、测试、上线准备和发布等环节。",[10,1289,1290],{},"今天的 AI 工具已经能够分别辅助其中许多步骤：阅读需求、生成技术方案、编写代码、补充测试、分析日志和执行代码检查。但在实际工作中，开发人员仍需要反复搬运需求、文档、代码、日志和测试反馈，并在不同工具之间维护任务状态。",[10,1292,1293,1294,1297],{},"更理想的产品形态不是增加一个孤立的聊天窗口，而是建设一个",[19,1295,1296],{},"以研发任务为中心的智能开发人员工作台","。它持续组织一个任务从需求到交付的上下文、产物、执行过程和验收证据，并在关键节点保留人工确认。",[10,1299,1300],{},"测试阶段的 Bug 处理，是这个工作台最适合率先验证的主动式闭环。假设研发团队日常使用：",[118,1302,1303,1306,1309,1312],{},[83,1304,1305],{},"云效：管理需求、Bug 和研发任务。",[83,1307,1308],{},"飞书：测试人员反馈问题、研发人员讨论和协作。",[83,1310,1311],{},"GitLab：托管代码、管理 Merge Request。",[83,1313,1314],{},"CI 平台：执行单元测试、集成测试和代码检查。",[10,1316,1317],{},"开发人员完成 Code Review 并提测后，测试人员可能在飞书群中反馈：",[161,1319,1320],{},[10,1321,1322],{},"订单服务的退款接口偶尔返回 500，云效上之前好像也提过这个问题，麻烦后端看一下。",[10,1324,1325],{},"此时，Agent 可以在授权范围内主动完成：",[80,1327,1328,1331,1334,1337,1340,1343,1346,1349,1352,1355],{},[83,1329,1330],{},"识别潜在的 Bug 反馈，保留消息来源和上下文。",[83,1332,1333],{},"查询云效，判断是否已经存在相同或相关缺陷。",[83,1335,1336],{},"关联原始需求、代码分支、Commit、负责人和测试环境。",[83,1338,1339],{},"检索相关代码、日志、技术文档与经过验证的历史修复记录。",[83,1341,1342],{},"分析原因，创建受控修复分支，修改代码并运行测试。",[83,1344,1345],{},"创建 Draft PR\u002FMR，附上问题分析、修改内容、测试结果和剩余风险。",[83,1347,1348],{},"跟踪必要的增量 Code Review、CI 和测试环境部署状态。",[83,1350,1351],{},"满足预设条件后，将云效 Bug 标记为“已修复”，等待测试人员回归验证。",[83,1353,1354],{},"如果回归失败，则重新打开并继续原任务；验证通过后关闭 Bug。",[83,1356,1357],{},"将经过回归验证的修复经验沉淀为候选团队知识。",[10,1359,1360,1361,57],{},"这不再是一次简单问答，而是一个",[19,1362,1363],{},"由测试反馈触发、跨越多套系统、能够等待人工与外部事件并持续恢复执行的长期研发任务",[10,1365,1366],{},"需要强调：自动处理测试阶段 Bug 不是项目的全部。近期产品形态是开发人员工作台，研发全流程是领域边界，Bug 处理是第一个主动式闭环，企业级数字员工则是长期架构方向。",[101,1368,1370],{"id":1369},"_12-通用-agent-与企业-agent-的关键区别","1.2 通用 Agent 与企业 Agent 的关键区别",[10,1372,1373],{},"对于通用模型而言，理解 Bug 描述、分析代码甚至生成补丁，都已经是相对成熟的能力。",[10,1375,1376],{},"真正困难的是：",[118,1378,1379,1382,1385,1388,1391,1394,1397,1400,1403],{},[83,1380,1381],{},"Agent 如何持续感知企业内部发生的事件？",[83,1383,1384],{},"如何获得飞书、云效和代码仓库的访问权限？",[83,1386,1387],{},"如何知道哪个项目、哪个模块属于哪个负责人？",[83,1389,1390],{},"如何避免对同一个 Bug 重复创建任务或 PR？",[83,1392,1393],{},"如何在多个 Agent 之间共享任务上下文？",[83,1395,1396],{},"如何利用历史修复经验，同时避免错误记忆影响判断？",[83,1398,1399],{},"如何在执行中断后恢复任务？",[83,1401,1402],{},"如何保证代码修改不会越过企业的安全边界？",[83,1404,1405],{},"如何验证 Agent 真的修复了 Bug，而不只是提交了一段代码？",[10,1407,1408],{},"这些问题已经超出了单纯的模型推理能力。",[10,1410,1411],{},[19,1412,1413],{},"通用模型解决的是智能能力的供给问题，企业 Agent 还需要解决智能能力如何融入组织、业务流程与软件工程体系的问题。",[10,1415,1416],{},"因此，企业需要的通常不是重新训练一个更聪明的模型，而是建设能够整合内部系统、理解业务上下文、执行长期任务并接受治理的 Agent 能力。",[10,1418,1419],{},"但需要强调：",[10,1421,1422],{},[19,1423,1424],{},"企业拥有自己的 Agent 能力，不等于必须从零自研 Agent Runtime。",[10,1426,1427],{},"采购成熟产品、基于现有平台定制、使用开源框架开发以及自研核心组件，都是合理选择。",[96,1429,1431],{"id":1430},"二市场需求企业究竟在招聘什么样的-agent-工程师","二、市场需求：企业究竟在招聘什么样的 Agent 工程师？",[10,1433,1434],{},"判断一项技术的实际需求，不能只看技术社区的热度，还需要观察企业愿意投入哪些研发资源。",[10,1436,1437],{},"招聘信息是一个有价值的观察窗口。",[101,1439,1441],{"id":1440},"_21-从企业招聘-jd-看-agent-技术能力","2.1 从企业招聘 JD 看 Agent 技术能力",[10,1443,1444,1445,1448],{},"以滴滴官方招聘岗位 ",[19,1446,1447],{},"AI Agent 基建平台架构师"," 为例，岗位职责涉及：",[118,1450,1451,1454,1457,1460,1463],{},[83,1452,1453],{},"Agent 创建、配置、版本、发布及运行托管等全生命周期管理。",[83,1455,1456],{},"Agent 编排与运行时能力，包括模型、Prompt、知识库、MCP、工作流、记忆和任务调度。",[83,1458,1459],{},"日志追踪、异常恢复、灰度发布、权限隔离和稳定性建设。",[83,1461,1462],{},"高并发、分布式运行时的性能优化。",[83,1464,1465],{},"评估 LangGraph、DeepAgents 等框架，并结合业务进行技术选型。",[10,1467,1468],{},"这些要求说明，企业正在将 Agent 视为一种需要长期维护的软件系统，而不仅仅是一次模型 API 调用。",[10,1470,1471,1472],{},"资料来源：",[26,1473,1476],{"href":1474,"rel":1475},"https:\u002F\u002Ftalent.didiglobal.com\u002Fsocial\u002FjobDetail?jdId=66598",[30],"滴滴招聘——AI Agent 基建平台架构师",[10,1478,1479],{},"京东的 Agent 平台方向岗位也涉及业务 Agent、工具集成、MCP、Agent 协作及工程问题定位。",[10,1481,1471,1482],{},[26,1483,1486],{"href":1484,"rel":1485},"https:\u002F\u002Fzhaopin.jd.com\u002Fweb\u002Fjob-info-detail?requementId=226656",[30],"京东招聘——Agent 平台方向",[10,1488,1489],{},"结合部分公开岗位描述，可以将相关研发需求归纳为以下几类：",[318,1491,1492,1505],{},[321,1493,1494],{},[324,1495,1496,1499,1502],{},[327,1497,1498],{},"能力领域",[327,1500,1501],{},"典型技术要求",[327,1503,1504],{},"对应的企业问题",[334,1506,1507,1518,1529,1540,1551,1562,1573,1584],{},[324,1508,1509,1512,1515],{},[339,1510,1511],{},"Agent Runtime",[339,1513,1514],{},"Loop、编排、状态、调度",[339,1516,1517],{},"如何持续执行复杂任务",[324,1519,1520,1523,1526],{},[339,1521,1522],{},"Tool \u002F MCP",[339,1524,1525],{},"工具发现、调用、权限",[339,1527,1528],{},"如何连接企业业务系统",[324,1530,1531,1534,1537],{},[339,1532,1533],{},"Memory \u002F RAG",[339,1535,1536],{},"长期记忆、知识检索",[339,1538,1539],{},"如何使用企业知识和历史经验",[324,1541,1542,1545,1548],{},[339,1543,1544],{},"Multi-Agent",[339,1546,1547],{},"任务分解、协作、交接",[339,1549,1550],{},"如何协调不同职责",[324,1552,1553,1556,1559],{},[339,1554,1555],{},"Security",[339,1557,1558],{},"身份、授权、审计",[339,1560,1561],{},"如何防止越权与数据泄露",[324,1563,1564,1567,1570],{},[339,1565,1566],{},"Reliability",[339,1568,1569],{},"幂等、恢复、容错",[339,1571,1572],{},"如何保证业务操作可靠",[324,1574,1575,1578,1581],{},[339,1576,1577],{},"Evaluation",[339,1579,1580],{},"任务评测、Trace、监控",[339,1582,1583],{},"如何判断 Agent 是否有效",[324,1585,1586,1589,1592],{},[339,1587,1588],{},"Platform Engineering",[339,1590,1591],{},"部署、版本、灰度、成本",[339,1593,1594],{},"如何让多个团队持续使用",[10,1596,1597],{},"以上是对部分公开招聘样本的定性分析，不是经过统计抽样的全市场岗位占比结论。岗位发布也不能直接证明相关能力已经在企业内部成熟落地。",[10,1599,1600],{},"不过，这些需求揭示了一个重要趋势：",[10,1602,1603],{},[19,1604,1605],{},"Agent 开发正在从模型调用和 Prompt 设计，向运行时、数据工程、权限治理和软件可靠性等方向延伸。",[10,1607,1608],{},"对于具有传统后端、分布式系统和企业业务研发经验的工程师，这些领域同样是进入 Agent 工程的重要切入点。",[96,1610,1612],{"id":1611},"三大厂实践企业-agent-平台正在解决什么问题","三、大厂实践：企业 Agent 平台正在解决什么问题？",[10,1614,1615],{},"招聘需求反映企业希望获得的研发能力，而云平台和企业软件厂商的公开架构，则展示了另一种视角：当 Agent 被广泛引入企业时，需要补充哪些基础设施？",[101,1617,1619],{"id":1618},"_31-google-cloud从模型平台到-agent-平台","3.1 Google Cloud：从模型平台到 Agent 平台",[10,1621,1622],{},"Google Cloud 在 Gemini Enterprise Agent Platform 中，将平台能力概括为构建、规模化运行、治理和优化 Agent。",[10,1624,1625],{},"除了模型本身，平台还强调 Agent Identity、Registry、Gateway、Memory、Evaluation 和 Observability 等能力。",[10,1627,1628],{},"当企业只有一个 Agent 时，开发者可能只需要关注模型、工具和 Prompt。",[10,1630,1631],{},"当企业拥有大量 Agent 时，就需要回答：",[118,1633,1634,1637,1640,1643,1646],{},[83,1635,1636],{},"Agent 由谁创建和管理？",[83,1638,1639],{},"哪个 Agent 可以访问哪些工具？",[83,1641,1642],{},"Agent 的身份和权限如何维护？",[83,1644,1645],{},"如何追踪一次跨系统任务？",[83,1647,1648],{},"如何统一评估、部署和更新？",[10,1650,1651],{},"这些问题更接近平台工程，而不是单个 AI 应用的开发。",[10,1653,1471,1654],{},[26,1655,1658],{"href":1656,"rel":1657},"https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fai-machine-learning\u002Fintroducing-gemini-enterprise-agent-platform",[30],"Google Cloud——Introducing Gemini Enterprise Agent Platform",[101,1660,1662],{"id":1661},"_32-microsoftagent-需要自己的身份和治理机制","3.2 Microsoft：Agent 需要自己的身份和治理机制",[10,1664,1665],{},"Microsoft 的 Agent 相关架构强调 Agent Identity、委托授权以及企业治理。",[10,1667,1668],{},"传统企业软件主要管理人的身份和权限。Agent 出现之后，企业需要进一步考虑：一个由用户发起、可能持续执行并调用多个系统的 Agent，究竟应该以什么身份行动？",[10,1670,1671],{},"例如：",[10,1673,1674],{},"研发人员 A 可以查看自己负责的代码仓库，但不能访问其他团队的私有仓库。",[10,1676,1677],{},"当研发人员 A 委托 Coding Agent 修复 Bug 时，Coding Agent 不应该因为自身拥有代码工具，就自动获得修改所有仓库的权限。",[10,1679,1680],{},"因此，需要区分：",[118,1682,1683,1686,1689,1692],{},[83,1684,1685],{},"用户身份与用户权限。",[83,1687,1688],{},"Agent 身份与 Agent 自身的能力范围。",[83,1690,1691],{},"用户授予 Agent 的委托权限。",[83,1693,1694],{},"目标业务系统最终执行的授权校验。",[10,1696,1697],{},[19,1698,1699],{},"Agent 的执行权限不应该由模型通过 Prompt 自行决定。",[10,1701,1471,1702],{},[26,1703,1706],{"href":1704,"rel":1705},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fmicrosoft-agent-365\u002Fbuilder\u002Fidentity",[30],"Microsoft Agent 365——Agent Identity",[101,1708,1710],{"id":1709},"_33-aws工具调用需要独立的策略执行边界","3.3 AWS：工具调用需要独立的策略执行边界",[10,1712,1713],{},"AWS Bedrock AgentCore 的 Gateway 和策略机制强调，对 Agent 工具调用进行独立授权和拦截。",[10,1715,1716],{},"原因很直接：Agent 的工具调用具有一定动态性。",[10,1718,1719],{},"同样一个用户请求，模型可能选择不同工具、不同参数和不同执行顺序。",[10,1721,1722],{},"因此，系统不能仅仅通过一段 System Prompt 告诉模型“不要执行危险操作”，就认为安全问题已经解决。",[10,1724,1725],{},"更合理的设计是：",[10,1727,1728],{},[19,1729,1730],{},"模型负责提出行动，程序负责验证行动，业务系统负责维护最终业务约束。",[10,1732,1471,1733],{},[26,1734,1737],{"href":1735,"rel":1736},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fmachine-learning\u002Fsecure-ai-agents-with-policy-and-lambda-interceptors-in-amazon-bedrock-agentcore-gateway\u002F",[30],"AWS——Securing AI Agents with AgentCore Gateway Policies",[101,1739,1741],{"id":1740},"_34-salesforceagent-是企业-it-架构的组成部分","3.4 Salesforce：Agent 是企业 IT 架构的组成部分",[10,1743,1744,1745,1748],{},"Salesforce 在 ",[13,1746,1747],{},"The Agentic Enterprise"," 架构中，将 Agent Runtime、企业语义层、应用集成、工作流编排、可观测性和安全治理放在统一架构下讨论。",[10,1750,1751],{},"传统企业系统主要围绕人使用应用程序开展工作，而 Agent 使软件能够在授权范围内参与任务判断与执行。",[10,1753,1754],{},"但企业原有的 ERP、CRM、财务和订单系统并不会因此消失。",[10,1756,1757],{},"Agent 更可能通过标准化接口和业务服务与这些系统协作，而不是直接取代所有既有业务逻辑。",[10,1759,1471,1760],{},[26,1761,1764],{"href":1762,"rel":1763},"https:\u002F\u002Farchitect.salesforce.com\u002Fdocs\u002Farchitect\u002Ffundamentals\u002Fguide\u002Fagentic-enterprise-it-architecture",[30],"Salesforce Architects——The Agentic Enterprise",[101,1766,1768],{"id":1767},"_35-从这些实践得到的启示","3.5 从这些实践得到的启示",[10,1770,1771],{},"综合这些官方资料，可以看到几个共同方向。",[10,1773,1774],{},[19,1775,1776],{},"第一，模型与企业控制能力正在分层。",[10,1778,1779],{},"模型提供理解、推理与规划能力；企业系统提供身份、权限、业务数据、操作接口和治理机制。",[10,1781,1782],{},[19,1783,1784],{},"第二，Agent 不应绕过已有业务系统。",[10,1786,1787],{},"业务规则、交易约束和最终数据一致性仍应由确定性的业务服务保障。",[10,1789,1790],{},[19,1791,1792],{},"第三，Agent 的运行状态、记忆和权限需要独立治理。",[10,1794,1795],{},"一次对话的上下文，并不足以代表完整的企业任务状态。",[10,1797,1798],{},[19,1799,1800],{},"第四，Agent 不应该只能被动响应。",[10,1802,1803],{},"对于研发协作、运维、客服和业务流程等场景，Agent 可以通过事件订阅、任务调度和状态管理主动参与工作。",[10,1805,1806],{},"但这种主动性必须受到明确的权限、触发条件和执行边界约束。",[10,1808,1809],{},"当然，厂商官方架构描述的是其产品设计方向，不能直接等同于所有客户的实际生产效果。具体收益仍需要通过真实业务指标验证。",[96,1811,1813],{"id":1812},"四企业级-agent-的七个核心技术挑战","四、企业级 Agent 的七个核心技术挑战",[10,1815,1816],{},"基于上述需求和研发协作场景，可以将企业 Agent 的关键工程问题归纳为七个方面。",[101,1818,1820],{"id":1819},"_41-主动感知从被动对话到事件驱动","4.1 主动感知：从被动对话到事件驱动",[10,1822,1823],{},"传统 Chatbot 通常由用户主动发起请求。",[10,1825,1826],{},"但在企业研发协作中，很多任务是由业务事件触发的。",[10,1828,1671],{},[118,1830,1831,1834,1837,1840,1843],{},[83,1832,1833],{},"云效新增或更新 Bug。",[83,1835,1836],{},"飞书测试群出现新的问题反馈。",[83,1838,1839],{},"PR 审核状态发生变化。",[83,1841,1842],{},"CI 执行失败。",[83,1844,1845],{},"测试人员反馈问题仍然存在。",[10,1847,1848],{},"系统需要持续感知这些事件，并判断是否应该创建任务、更新已有任务或通知相关人员。",[10,1850,1851],{},"这里首先涉及传统事件驱动架构中的问题：",[118,1853,1854,1857,1860,1863,1866,1869],{},[83,1855,1856],{},"Webhook 与 Polling 如何选择？",[83,1858,1859],{},"重复事件如何去重？",[83,1861,1862],{},"乱序事件如何处理？",[83,1864,1865],{},"外部系统不可用时如何补偿？",[83,1867,1868],{},"多个事件如何关联到同一个 Bug？",[83,1870,1871],{},"如何避免反复触发相同的 Agent 任务？",[10,1873,1874],{},"一个重要的设计原则是：",[10,1876,1877],{},[19,1878,1879],{},"事件接入、去重、状态管理等确定性工作，应优先由传统程序完成；需要语义理解和不确定性判断的环节，再交给模型。",[10,1881,1882],{},"例如，飞书消息是否属于 Bug 反馈，可以使用模型分类；但事件 ID 去重不需要 LLM。",[10,1884,1885],{},"此外，群聊消息可能包含敏感信息、个人讨论或与研发无关的内容，因此必须明确采集范围、访问授权、保留策略和数据最小化原则。",[101,1887,1889],{"id":1888},"_42-多用户多角色与权限边界","4.2 多用户、多角色与权限边界",[10,1891,1892],{},"企业中存在不同的组织、部门、岗位和审批职责。",[10,1894,1895],{},"同一个 Agent 面对不同用户时，能够访问的数据和执行的操作可能完全不同。",[10,1897,1671],{},[118,1899,1900,1903,1906,1909],{},[83,1901,1902],{},"测试人员可以提交 Bug、查询测试任务。",[83,1904,1905],{},"研发人员可以查看授权范围内的代码仓库和任务。",[83,1907,1908],{},"技术负责人可以管理项目任务、审核代码变更。",[83,1910,1911],{},"CI 服务身份可以执行限定范围的自动化测试。",[10,1913,1914],{},"这里至少存在两类角色：",[10,1916,1917,1920],{},[19,1918,1919],{},"用户角色（User Role）","：决定用户在组织中的业务权限。",[10,1922,1923,1926],{},[19,1924,1925],{},"Agent 角色（Agent Role）","：决定 Agent 承担什么任务、具备什么专业能力。",[10,1928,1929],{},"二者必须分开。",[10,1931,1932],{},"一个负责代码修复的 Agent，不应该天然拥有全部代码仓库的修改权限；一个 Supervisor Agent 将任务交给其他 Agent，也不应该自动扩大原始任务的授权范围。",[10,1934,1935],{},"对于主动触发的任务，还需要明确自动化服务身份、任务授权来源以及允许执行的操作范围。",[10,1937,1938],{},"因此，企业 Agent 的权限检查必须覆盖数据采集、知识检索、上下文构建、工具执行和任务恢复等环节。",[101,1940,1942],{"id":1941},"_43-多层记忆与组织知识共享","4.3 多层记忆与组织知识共享",[10,1944,1945],{},"Agent Memory 不应该简单理解为“将聊天记录保存到向量数据库”。",[10,1947,1948],{},"企业中的信息具有不同来源、作用域、可信度和生命周期。",[10,1950,1951],{},"从内容角度，可以研究：",[118,1953,1954,1960,1966],{},[83,1955,1956,1959],{},[19,1957,1958],{},"Semantic Memory","：业务事实、项目知识和技术约定。",[83,1961,1962,1965],{},[19,1963,1964],{},"Episodic Memory","：历史 Bug、任务执行经历和修复结果。",[83,1967,1968,1971],{},[19,1969,1970],{},"Procedural Memory","：可复用的排查方法、操作流程和修复经验。",[10,1973,1974],{},"从访问范围角度，可以划分：",[118,1976,1977,1980,1983,1986,1989],{},[83,1978,1979],{},"个人私有记忆。",[83,1981,1982],{},"Agent 工作记忆。",[83,1984,1985],{},"项目共享记忆。",[83,1987,1988],{},"团队共享记忆。",[83,1990,1991],{},"组织级共享记忆。",[10,1993,1994],{},"这两个维度相互独立。",[10,1996,1997],{},"例如，一次退款接口异常的修复记录属于 Episodic Memory，但它可能只允许订单研发团队访问。",[10,1999,2000],{},"企业记忆还需要处理更复杂的问题。",[10,2002,2003],{},[19,2004,2005],{},"记忆如何形成？",[10,2007,2008],{},"Coding Agent 推测某段代码存在并发问题，是否可以直接保存为长期事实？还是需要通过测试和人工审核后才能确认？",[10,2010,2011],{},[19,2012,2013],{},"记忆如何共享？",[10,2015,2016],{},"某个开发人员的排查经验什么时候可以升级为团队知识？共享时是否需要删除客户数据、密钥或内部敏感信息？",[10,2018,2019],{},[19,2020,2021],{},"记忆如何更新？",[10,2023,2024],{},"当新的修复结论推翻旧结论时，是覆盖、保留版本，还是标记旧结论已失效？",[10,2026,2027],{},[19,2028,2029],{},"记忆如何撤回？",[10,2031,2032],{},"当用户删除信息或组织权限发生变化时，原始数据、向量索引、摘要和缓存如何同步失效？",[10,2034,2035,2036,57],{},"还需要区分",[19,2037,2038],{},"权威业务数据与 Agent 记忆",[10,2040,2041],{},"例如，代码模块负责人应该优先从明确维护的 CODEOWNERS、项目配置或任务系统中获取，而不是仅凭历史聊天记录猜测。",[10,2043,2044],{},"这些问题决定了企业记忆系统能否被信任。",[101,2046,2048],{"id":2047},"_44-多-agent-协作与任务编排","4.4 多 Agent 协作与任务编排",[10,2050,2051],{},"研发协作涉及多个不同的专业环节。",[10,2053,2054],{},"例如，一个 Bug 的处理可能需要：",[80,2056,2057,2063,2069,2074],{},[83,2058,2059,2062],{},[19,2060,2061],{},"Triage Agent","：识别、归类和关联缺陷。",[83,2064,2065,2068],{},[19,2066,2067],{},"Diagnosis Agent","：分析代码、日志和历史问题。",[83,2070,2071,2073],{},[19,2072,216],{},"：修改代码、运行测试。",[83,2075,2076,2079],{},[19,2077,2078],{},"Coordinator","：管理任务状态、通知负责人并跟踪反馈。",[10,2081,2082],{},"但需要警惕一个误区：",[10,2084,2085],{},[19,2086,2087],{},"业务存在多个角色，不代表技术上必须使用多个 LLM Agent。",[10,2089,2090],{},"例如，负责人查询可以由确定性服务完成；任务状态更新可以由 Workflow 负责；只有复杂的代码分析与修复才可能需要专门的 Coding Agent。",[10,2092,2093],{},"因此，多 Agent 架构应该回答：",[118,2095,2096,2099,2102,2105,2108],{},[83,2097,2098],{},"为什么单 Agent 无法满足需求？",[83,2100,2101],{},"Agent 之间传递什么状态？",[83,2103,2104],{},"如何避免重复工作和循环委派？",[83,2106,2107],{},"任务交接时如何保持用户授权？",[83,2109,2110],{},"如何判断协作带来的收益超过额外成本？",[10,2112,2113],{},"我们不应该为了展示 Multi-Agent 技术而强行拆分多个 Agent。",[101,2115,2117],{"id":2116},"_45-coding-agent代码执行与安全边界","4.5 Coding Agent：代码执行与安全边界",[10,2119,2120],{},"在开发人员工作台中，使用 Coding Agent 辅助实现需求或修复 Bug，是最有价值、也最需要谨慎设计的能力之一。",[10,2122,2123],{},"Coding Agent 可能需要：",[118,2125,2126,2129,2132,2135,2138,2141,2144],{},[83,2127,2128],{},"读取代码仓库。",[83,2130,2131],{},"搜索相关文件和调用链。",[83,2133,2134],{},"修改代码。",[83,2136,2137],{},"安装依赖。",[83,2139,2140],{},"执行测试。",[83,2142,2143],{},"提交 Git Commit。",[83,2145,2146],{},"创建 Draft PR。",[10,2148,2149],{},"这些操作涉及真实的代码执行和外部副作用，因此需要考虑：",[10,2151,2152],{},[19,2153,2154],{},"仓库与分支权限。",[10,2156,2157],{},"Agent 只能访问授权仓库，默认不直接修改受保护分支。",[10,2159,2160],{},[19,2161,2162],{},"命令与网络权限。",[10,2164,2165],{},"不能将模型生成的任意 Shell 命令视为可信输入；需要对执行能力、网络访问和敏感凭据进行约束。",[10,2167,2168],{},[19,2169,2170],{},"代码质量验证。",[10,2172,2173],{},"单元测试通过并不意味着 Bug 已修复。还需要结合回归测试、代码审查和原始问题的复现条件。",[10,2175,2176],{},[19,2177,2178],{},"人工审核。",[10,2180,2181],{},"第一阶段可以允许 Agent 在限定条件下创建 Draft PR，但不自动合并或部署生产环境。",[10,2183,2184],{},"这也带来一个重要的评估问题：",[10,2186,2187],{},[19,2188,2189],{},"成功创建 PR，不等于成功修复 Bug。",[101,2191,2193],{"id":2192},"_46-长期任务与可靠执行","4.6 长期任务与可靠执行",[10,2195,2196],{},"从 Bug 发现到最终解决，可能持续数小时甚至数天。",[10,2198,1671],{},[118,2200,2201,2204,2207,2210,2213],{},[83,2202,2203],{},"周一：测试人员反馈 Bug。",[83,2205,2206],{},"周二：Agent 完成分析并创建 Draft PR。",[83,2208,2209],{},"周三：开发人员审核，提出修改意见。",[83,2211,2212],{},"周四：Agent 根据反馈更新补丁。",[83,2214,2215],{},"周五：CI 通过，测试人员完成验证。",[10,2217,2218],{},"这是一个长期存在的任务，而不是一次 LLM 请求。",[10,2220,2221],{},"系统需要支持：",[118,2223,2224,2227,2230,2233,2236,2239,2242],{},[83,2225,2226],{},"任务状态持久化。",[83,2228,2229],{},"等待外部事件。",[83,2231,2232],{},"任务暂停、恢复和取消。",[83,2234,2235],{},"工具执行超时。",[83,2237,2238],{},"重复事件处理。",[83,2240,2241],{},"重启后的任务恢复。",[83,2243,2244],{},"外部副作用的结果核验。",[10,2246,2247],{},"例如，Agent 调用 Git 平台创建 PR：",[80,2249,2250,2253,2256],{},[83,2251,2252],{},"PR 已成功创建。",[83,2254,2255],{},"网络连接发生超时。",[83,2257,2258],{},"Agent 没有收到成功响应。",[10,2260,2261],{},"此时直接重试，可能创建重复 PR。",[10,2263,2264],{},"因此，需要通过幂等标识、关联查询或人工核查确认外部操作结果。",[10,2266,2267],{},[19,2268,2269],{},"任务状态恢复，不等于外部业务副作用可以安全重放。",[10,2271,2272],{},"这也是企业 Agent Runtime 与传统分布式系统可靠性设计的重要交汇点。",[101,2274,2276],{"id":2275},"_47-可观测性评估与成本控制","4.7 可观测性、评估与成本控制",[10,2278,2279],{},"传统系统可以通过错误率、吞吐量、延迟和资源利用率等指标判断运行状态。",[10,2281,2282],{},"Agent 还需要回答：",[10,2284,2285],{},[19,2286,2287],{},"系统运行成功，是否意味着任务完成正确？",[10,2289,2290],{},"例如，一个 Agent 成功读取代码、生成补丁、运行测试并创建 PR，但它修改了错误的模块，或者仅仅绕过了失败的测试。",[10,2292,2293],{},"从工具执行角度看，所有调用可能都成功了；从业务角度看，任务仍然失败。",[10,2295,2296],{},"因此，企业 Agent 需要同时建立：",[10,2298,2299,2302],{},[19,2300,2301],{},"技术指标","：延迟、Token 消耗、工具失败率、资源利用率、任务恢复情况。",[10,2304,2305,2308],{},[19,2306,2307],{},"行为指标","：Bug 识别准确率、工具选择正确率、任务步骤合理性、记忆召回质量、权限违规次数。",[10,2310,2311,2314],{},[19,2312,2313],{},"业务指标","：有效 Bug 发现率、重复任务率、修复成功率、PR 审核通过率、人工接管率、平均处理时间和单位任务成本。",[10,2316,2317],{},"评估不应该等到项目开发完成后才补充，而应该从最小可运行版本开始建立。",[96,2319,2321],{"id":2320},"五建设企业-agent应该采购定制还是自研","五、建设企业 Agent：应该采购、定制还是自研？",[10,2323,2324],{},"讨论企业为什么需要自己的 Agent，还必须回答一个现实问题：企业是否真的应该自己开发？",[10,2326,2327],{},"答案并不总是肯定的。",[318,2329,2330,2340],{},[321,2331,2332],{},[324,2333,2334,2337],{},[327,2335,2336],{},"业务场景",[327,2338,2339],{},"建议优先考虑",[334,2341,2342,2350,2358,2366,2374,2382],{},[324,2343,2344,2347],{},[339,2345,2346],{},"通用文档处理、会议总结",[339,2348,2349],{},"成熟通用 AI 产品",[324,2351,2352,2355],{},[339,2353,2354],{},"企业知识问答",[339,2356,2357],{},"现有 Agent 平台与知识库方案",[324,2359,2360,2363],{},[339,2361,2362],{},"单部门流程自动化",[339,2364,2365],{},"成熟工作流或 Agent 框架",[324,2367,2368,2371],{},[339,2369,2370],{},"代码生成和单次修复任务",[339,2372,2373],{},"成熟 Coding Agent",[324,2375,2376,2379],{},[339,2377,2378],{},"跨系统研发协作与持续任务跟踪",[339,2380,2381],{},"专属 Agent 应用与控制能力",[324,2383,2384,2387],{},[339,2385,2386],{},"多团队共建 Agent 平台",[339,2388,2389],{},"统一治理与共享基础设施",[10,2391,2392],{},"即使决定自研，也不意味着所有组件都应该自行实现。",[10,2394,2395],{},"模型推理、Embedding、向量检索、工作流框架、MCP 协议、可观测性基础设施，以及 Coding Agent 本身，都可以优先考虑成熟方案。",[10,2397,2398],{},"更合理的建设原则是：",[161,2400,2401],{},[10,2402,2403],{},"对通用能力优先复用，对企业差异化能力重点建设，对关键架构决策进行验证。",[10,2405,2406],{},"这里还需要考虑长期总拥有成本，包括研发投入、部署维护、模型调用、合规成本、故障处理和后续升级。",[10,2408,2409],{},"自研带来的灵活性，必须能够覆盖它增加的复杂度。",[96,2411,2413],{"id":2412},"六项目定位面向研发全流程的智能开发人员工作台","六、项目定位：面向研发全流程的智能开发人员工作台",[10,2415,2416],{},"基于前面的研究，近期实践方向可以定义为：",[10,2418,2419],{},[19,2420,2421],{},"一个以研发任务为中心，覆盖技术方案、开发、自测、Code Review、提测、测试反馈和上线准备等环节的智能开发人员工作台。",[10,2423,2424],{},"它通过可治理、可恢复、可验证的 Agent 能力持续参与研发流程，并以测试阶段的 Bug 处理作为第一个主动式闭环。",[10,2426,2427],{},"项目的目标层次是：",[66,2429,2432],{"className":2430,"code":2431,"language":71,"meta":72},[69],"长期愿景：企业级数字员工\n               ↑\n演进方向：主动式研发协作 Agent\n               ↑\n产品形态：智能开发人员工作台\n               ↑\n首个闭环：测试阶段 Bug 的发现、修复与回归跟踪\n",[74,2433,2431],{"__ignoreMap":72},[10,2435,2436],{},"开发人员工作台不是另一个 IDE，也不是另一个聊天机器人。它位于需求管理、协作工具、代码仓库、Coding Agent、CI 和测试环境之上，以研发任务为主线组织上下文、产物、执行状态和验收证据。",[101,2438,2440],{"id":2439},"_61-核心领域对象","6.1 核心领域对象",[10,2442,2443],{},"系统首先需要理解的不是“有多少个 Agent”，而是一个研发任务包含哪些持续演进的信息。",[66,2445,2448],{"className":2446,"code":2447,"language":71,"meta":72},[69],"研发任务 WorkItem\n├── 原始需求与验收标准\n├── 项目、模块与负责人\n├── 技术方案与接口文档\n├── 开发计划\n├── 代码分支、Commit 与 PR\u002FMR\n├── 自测、CI 与测试环境结果\n├── Code Review 意见\n├── 云效 Bug 与飞书测试反馈\n├── 修复记录\n└── 发布及最终验证证据\n",[74,2449,2447],{"__ignoreMap":72},[10,2451,2452],{},"围绕 WorkItem，可以进一步抽象：",[118,2454,2455,2460,2465,2470,2475,2480],{},[83,2456,2457,2459],{},[19,2458,372],{},"：需求、代码、文档、规范、日志和历史记录。",[83,2461,2462,2464],{},[19,2463,382],{},"：技术方案、接口文档、代码、PR\u002FMR 和测试报告。",[83,2466,2467,2469],{},[19,2468,392],{},"：某次 Workflow、Agent 或工具执行。",[83,2471,2472,2474],{},[19,2473,402],{},"：编译、测试、CI、Review 和回归验证结果。",[83,2476,2477,2479],{},[19,2478,412],{},"：需要开发人员、负责人或测试人员确认的关键节点。",[83,2481,2482,2484],{},[19,2483,432],{},"：经过验证、具有来源和作用域的可复用经验。",[101,2486,2488],{"id":2487},"_62-三个核心研究问题","6.2 三个核心研究问题",[10,2490,2491],{},[19,2492,2493],{},"问题一：如何以研发任务为中心，持续组织需求、文档、代码、测试和反馈？",[10,2495,2496],{},"研究任务生命周期、上下文装配、产物关联、证据记录以及需求、Bug、分支、Commit、PR\u002FMR 和 CI 之间的可追溯关系。",[10,2498,2499],{},[19,2500,2501],{},"问题二：如何组合确定性 Workflow、模型判断和 Coding Agent？",[10,2503,2504],{},"研究哪些环节应由程序和状态机执行，哪些环节需要模型理解，哪些代码任务可以委托给成熟 Coding Agent，以及在哪里保留人工检查点。",[10,2506,2507],{},[19,2508,2509],{},"问题三：如何让长期研发任务可恢复、可授权、可追踪并以证据验收？",[10,2511,2512],{},"研究状态持久化、工具调用、审批、幂等、外部事件等待、结果核验、失败恢复和审计。",[10,2514,2515],{},"多 Agent、共享记忆和通用 Agent Runtime 是这些问题的候选解决手段，而不是预设目标。",[101,2517,2519],{"id":2518},"_63-初步逻辑架构","6.3 初步逻辑架构",[66,2521,2524],{"className":2522,"code":2523,"language":71,"meta":72},[69],"┌────────────────────────────────────────────┐\n│  需求 \u002F 文档 \u002F 云效 \u002F 飞书 \u002F Git \u002F CI \u002F 测试环境  │\n└─────────────────────┬──────────────────────┘\n                      │\n┌─────────────────────▼──────────────────────┐\n│       Integration & Event Ingestion        │\n│ Adapter \u002F Webhook \u002F Polling \u002F 去重 \u002F 关联 \u002F 授权 │\n└─────────────────────┬──────────────────────┘\n                      │\n┌─────────────────────▼──────────────────────┐\n│         Development Workbench Core         │\n│ WorkItem \u002F Lifecycle \u002F Artifact \u002F Evidence │\n│ Approval \u002F Timeline \u002F Project Context      │\n└──────────────┬─────────────────┬───────────┘\n               │                 │\n┌──────────────▼───────┐ ┌───────▼──────────┐\n│ Workflow Orchestration│ │  Agent Execution │\n│ 状态 \u002F 等待 \u002F 恢复 \u002F 补偿 │ │ LLM \u002F Coding Agent│\n└──────────────┬───────┘ └───────┬──────────┘\n               │                 │\n┌──────────────▼─────────────────▼───────────┐\n│ Identity \u002F Policy \u002F Audit \u002F Memory \u002F Eval  │\n└────────────────────────────────────────────┘\n",[74,2525,2523],{"__ignoreMap":72},[10,2527,2528],{},"这只是逻辑能力划分，不代表最终必须采用微服务架构，也不代表每个模块都需要独立部署。",[10,2530,2531],{},"云效、飞书、Git 平台、CI 和 Coding Agent 应通过适配器接入。核心 WorkItem、状态流转、权限判断和验收规则不能依赖某个 Agent 框架，也不应交给模型自行决定。",[101,2533,2535],{"id":2534},"_64-关键架构设计目标","6.4 关键架构设计目标",[318,2537,2538,2548],{},[321,2539,2540],{},[324,2541,2542,2545],{},[327,2543,2544],{},"设计目标",[327,2546,2547],{},"初步要求",[334,2549,2550,2558,2566,2574,2582,2590,2598,2606,2614,2622],{},[324,2551,2552,2555],{},[339,2553,2554],{},"任务可追溯",[339,2556,2557],{},"需求、文档、代码、Bug、PR\u002FMR、CI 和测试结果可以相互关联",[324,2559,2560,2563],{},[339,2561,2562],{},"证据可验证",[339,2564,2565],{},"完成状态必须具有编译、测试、Review 或回归验证证据",[324,2567,2568,2571],{},[339,2569,2570],{},"事件可追溯",[339,2572,2573],{},"保留来源、事件标识和处理状态",[324,2575,2576,2579],{},[339,2577,2578],{},"模型可替换",[339,2580,2581],{},"不与单一模型供应商强绑定",[324,2583,2584,2587],{},[339,2585,2586],{},"执行器可替换",[339,2588,2589],{},"支持替换 Coding Agent 与 Workflow 实现",[324,2591,2592,2595],{},[339,2593,2594],{},"权限可验证",[339,2596,2597],{},"数据访问与工具执行具有程序级授权检查",[324,2599,2600,2603],{},[339,2601,2602],{},"记忆可治理",[339,2604,2605],{},"支持来源、作用域、验证、更新、撤回和审计",[324,2607,2608,2611],{},[339,2609,2610],{},"任务可恢复",[339,2612,2613],{},"支持持久状态、外部事件等待及不确定副作用处理",[324,2615,2616,2619],{},[339,2617,2618],{},"行为可追踪",[339,2620,2621],{},"能追踪任务、模型调用、工具执行和人工操作",[324,2623,2624,2627],{},[339,2625,2626],{},"质量可评估",[339,2628,2629],{},"建立固定任务集与自动化回归",[10,2631,2632],{},"这些目标还不是已实现功能，而是后续设计、技术选型和验收的依据。",[96,2634,2636],{"id":2635},"七mvp从研发任务工作台到主动式-bug-闭环","七、MVP：从研发任务工作台到主动式 Bug 闭环",[10,2638,2639],{},"第一阶段不建设完整的企业数字员工平台，而是先建立研发任务的领域骨架，再逐步加入 Agent 能力。",[101,2641,2643],{"id":2642},"_71-v0研发任务工作台骨架","7.1 V0：研发任务工作台骨架",[10,2645,2646],{},"即使暂时没有 Agent，系统也应该能够正确表达研发流程：",[118,2648,2649,2652,2655,2658,2661],{},[83,2650,2651],{},"建立 Project、WorkItem、Artifact、Evidence、Approval 和 Run 等核心对象。",[83,2653,2654],{},"表达需求、开发、自测、Code Review、提测、测试、上线准备和发布等状态。",[83,2656,2657],{},"表达测试阶段 Bug 的创建、修复、标记已修复、回归、关闭与重新打开。",[83,2659,2660],{},"记录任务时间线和每次状态变化的操作者、来源与证据。",[83,2662,2663],{},"使用模拟适配器接入云效、飞书、Git 和 CI 数据。",[10,2665,2666],{},"这一阶段重点验证领域模型，而不是 Agent 的智能程度。",[101,2668,2670],{"id":2669},"_72-v1从任务到可验证的-draft-prmr","7.2 V1：从任务到可验证的 Draft PR\u002FMR",[10,2672,2673],{},"在工作台骨架上增加受控的开发能力：",[118,2675,2676,2679,2682,2685,2688,2691,2694],{},[83,2677,2678],{},"手工创建或导入一个需求、开发任务或 Bug。",[83,2680,2681],{},"关联项目规范、代码仓库、技术文档和验收要求。",[83,2683,2684],{},"生成技术方案或开发计划草稿，并由开发人员确认。",[83,2686,2687],{},"接入成熟 Coding Agent，在隔离工作区和授权分支中修改代码。",[83,2689,2690],{},"运行编译、单元测试和必要的静态检查。",[83,2692,2693],{},"展示 Diff、测试结果、未验证项和剩余风险。",[83,2695,2696],{},"经人工确认后创建 Draft PR\u002FMR，并保存执行证据。",[10,2698,2699],{},"这一阶段重点验证上下文装配、Coding Agent 适配、工作区安全和证据驱动的完成标准。",[101,2701,2703],{"id":2702},"_73-v2测试阶段-bug-主动处理闭环","7.3 V2：测试阶段 Bug 主动处理闭环",[10,2705,2706],{},"在 V1 的基础上增加主动事件和长期跟踪：",[118,2708,2709,2712,2715,2718,2721,2724,2727],{},[83,2710,2711],{},"接收云效 Bug 和飞书测试反馈。",[83,2713,2714],{},"对重复事件进行幂等处理，并关联同一问题的多种来源。",[83,2716,2717],{},"关联原始需求、负责人、代码分支、Commit、PR\u002FMR 和测试环境。",[83,2719,2720],{},"在授权范围内启动问题分析、代码修复、自测和 Draft PR\u002FMR。",[83,2722,2723],{},"跟踪必要的增量 Code Review、CI 和测试环境部署。",[83,2725,2726],{},"满足预设条件后，将 Bug 标记为“已修复”，等待测试人员回归。",[83,2728,2729],{},"回归失败时重新打开并恢复原任务；验证通过后关闭 Bug。",[10,2731,2732],{},"这一阶段重点验证主动触发、外部事件等待、任务恢复、状态一致性和完整研发闭环。",[101,2734,2736],{"id":2735},"_74-v3治理记忆与可评估协作","7.4 V3：治理、记忆与可评估协作",[10,2738,2739],{},"进一步支持：",[118,2741,2742,2745,2748,2751,2754,2757],{},[83,2743,2744],{},"用户身份、服务身份和委托权限。",[83,2746,2747],{},"工具审批、命令与仓库访问边界。",[83,2749,2750],{},"任务超时、取消、重试、补偿和不确定副作用核验。",[83,2752,2753],{},"将经过测试回归或合并验证的修复经验晋升为候选团队记忆。",[83,2755,2756],{},"使用固定案例评估不同模型、Workflow 和 Coding Agent。",[83,2758,2759],{},"只有在单 Agent 或 Workflow 无法满足需求时，再引入多 Agent 协作。",[101,2761,2763],{"id":2762},"_75-mvp-的验收标准","7.5 MVP 的验收标准",[10,2765,2766],{},"为了避免项目变成只有演示效果的 Demo，需要设计可重复的测试。",[318,2768,2769,2779],{},[321,2770,2771],{},[324,2772,2773,2776],{},[327,2774,2775],{},"验收场景",[327,2777,2778],{},"预期结果",[334,2780,2781,2789,2797,2805,2813,2821,2829,2837,2845,2853,2861,2869],{},[324,2782,2783,2786],{},[339,2784,2785],{},"一个研发任务跨越多个阶段",[339,2787,2788],{},"文档、代码、测试和状态仍关联到同一 WorkItem",[324,2790,2791,2794],{},[339,2792,2793],{},"飞书重复推送相同消息",[339,2795,2796],{},"不重复创建任务",[324,2798,2799,2802],{},[339,2800,2801],{},"云效与飞书反馈同一问题",[339,2803,2804],{},"能识别关联关系并保留不同来源",[324,2806,2807,2810],{},[339,2808,2809],{},"用户无权访问目标仓库",[339,2811,2812],{},"不向 Coding Agent 暴露仓库内容",[324,2814,2815,2818],{},[339,2816,2817],{},"历史修复记录与当前证据冲突",[339,2819,2820],{},"保留来源并标记不确定性",[324,2822,2823,2826],{},[339,2824,2825],{},"PR\u002FMR 创建成功但响应超时",[339,2827,2828],{},"查询外部状态，不盲目重复创建",[324,2830,2831,2834],{},[339,2832,2833],{},"任务执行中进程重启",[339,2835,2836],{},"能从持久状态和已有证据继续",[324,2838,2839,2842],{},[339,2840,2841],{},"Coding Agent 修改错误模块",[339,2843,2844],{},"通过测试、Review 或评测识别问题",[324,2846,2847,2850],{},[339,2848,2849],{},"未部署到测试环境或必要检查未通过",[339,2851,2852],{},"不自动将 Bug 标记为已修复",[324,2854,2855,2858],{},[339,2856,2857],{},"测试回归失败",[339,2859,2860],{},"重新打开 Bug，并恢复原修复任务",[324,2862,2863,2866],{},[339,2864,2865],{},"修复经验尚未验证",[339,2867,2868],{},"不直接晋升为团队长期记忆",[324,2870,2871,2874],{},[339,2872,2873],{},"相同案例重复评测",[339,2875,2876],{},"可以比较不同版本的质量、时间和成本",[10,2878,2879],{},"初期可以通过示例代码仓库、预置需求与 Bug、模拟飞书消息、云效数据和 CI 事件构建可复现环境，不依赖真实企业生产系统。",[10,2881,2882],{},"具体指标和阈值应在实现及基准测试后确定，不提前宣称生产级可靠性。",[96,2884,997],{"id":996},[10,2886,2887],{},"项目最容易遇到的问题之一，就是不断扩展功能范围。",[10,2889,2890],{},"因此，需要明确 V1 的非目标。",[10,2892,2893,2896],{},[19,2894,2895],{},"不自研基础大模型。"," 优先复用现有模型和推理服务。",[10,2898,2899,2902],{},[19,2900,2901],{},"不预设必须自研 Agent Runtime。"," 先研究成熟框架，再根据需求决定是否需要扩展或替换。",[10,2904,2905,2908],{},[19,2906,2907],{},"不从零开发完整 Coding Agent。"," 优先研究现有代码智能体的集成方式。",[10,2910,2911,2914],{},[19,2912,2913],{},"不追求无限自主执行。"," 主动执行必须受到明确约束。",[10,2916,2917,2920],{},[19,2918,2919],{},"不强制所有业务使用 Multi-Agent。"," 简单任务优先使用简单方案。",[10,2922,2923,2926],{},[19,2924,2925],{},"不建设完整企业 SaaS 或通用数字员工平台。"," 第一阶段重点验证研发任务、受控执行、证据和主动式 Bug 闭环。",[10,2928,2929,2932],{},[19,2930,2931],{},"不自动合并 PR 或部署生产环境。"," 初期只创建 Draft PR，并保留人工审核。",[10,2934,2935,2938],{},[19,2936,2937],{},"不把架构设计当作已验证成果。"," 所有关键结论都应有实现、测试或公开证据支持。",[96,2940,2942],{"id":2941},"九开发与写作让技术研究成为项目的一部分","九、开发与写作：让技术研究成为项目的一部分",[10,2944,2945],{},"这个项目还有一个重要目标：通过公开技术研究，建立系统性的 Agent 工程知识体系。",[10,2947,2948],{},"开发过程与技术文章可以结合，但不应把文章写成简单的开发日志。",[10,2950,2951],{},"每个重要技术专题尽量遵循相同的过程。",[10,2953,2954],{},[19,2955,2956],{},"第一步：研究问题。",[10,2958,2959],{},"理解业务需求、技术背景和已有解决方案。",[10,2961,2962],{},[19,2963,2964],{},"第二步：比较方案。",[10,2966,2967],{},"研究主流框架、官方文档、开源源码、社区 Issue 及不同架构的适用条件。",[10,2969,2970],{},[19,2971,2972],{},"第三步：验证假设。",[10,2974,2975],{},"对于关键技术取舍，使用最小实现、测试或 Benchmark 验证。",[10,2977,2978],{},[19,2979,2980],{},"第四步：记录决策。",[10,2982,2983],{},"通过 ADR 说明选择理由、放弃的方案、已知限制和未来重新评估的条件。",[10,2985,2986],{},[19,2987,2988],{},"第五步：开源实现。",[10,2990,2991],{},"公开可运行代码、测试、示例和必要的技术文档。",[10,2993,2994],{},[19,2995,2996],{},"第六步：总结反馈。",[10,2998,2999],{},"根据测试、实际使用和社区反馈，持续修正设计。",[10,3001,3002],{},"这意味着技术文章和开源代码会相互支撑：",[118,3004,3005,3008,3011,3014,3017],{},[83,3006,3007],{},"技术文章解释为什么这样设计。",[83,3009,3010],{},"开源代码展示实际如何实现。",[83,3012,3013],{},"自动化测试验证设计是否成立。",[83,3015,3016],{},"社区反馈帮助发现认知盲区。",[83,3018,3019],{},"后续文章记录方案如何演进。",[96,3021,3023],{"id":3022},"十总结企业-agent-的价值不只是更聪明","十、总结：企业 Agent 的价值不只是更聪明",[10,3025,3026],{},"回到最初的问题：",[10,3028,3029],{},[19,3030,3031],{},"通用 Agent 已经很强，企业为什么还需要自己的 Agent？",[10,3033,3034],{},"答案不是因为通用模型不够聪明，而是因为企业软件的价值不仅来自智能，还来自业务上下文、组织权限、数据治理、可靠执行和可验证的结果。",[10,3036,3037],{},"通用模型能够帮助系统理解“应该做什么”。",[10,3039,3040],{},"但企业仍然需要回答：",[118,3042,3043,3046,3049,3052,3055,3058,3061,3064,3067],{},[83,3044,3045],{},"什么事件应该触发 Agent？",[83,3047,3048],{},"谁允许它执行？",[83,3050,3051],{},"它可以使用哪些数据？",[83,3053,3054],{},"它应该调用哪个业务系统？",[83,3056,3057],{},"多个 Agent 如何共享任务上下文？",[83,3059,3060],{},"外部操作成功与否如何判断？",[83,3062,3063],{},"失败后如何安全恢复？",[83,3065,3066],{},"哪些信息可以长期保存和共享？",[83,3068,3069],{},"谁对最终结果负责？",[10,3071,3072],{},"这些问题共同构成了企业级 Agent 工程的核心。",[10,3074,3075],{},"未来，随着通用模型和 Agent 平台继续发展，企业自研的边界也会变化。今天需要自己实现的基础能力，明天可能成为成熟平台的一部分。",[10,3077,3078],{},"因此，真正重要的不是坚持自研某个框架，而是理解问题、识别边界，并做出合理的技术选择。",[10,3080,3081],{},"本系列将以智能开发人员工作台为近期实践载体，从研发任务模型出发，逐步研究上下文工程、Workflow 与 Agent 的边界、Coding Agent 集成、测试阶段 Bug 闭环、长期任务、权限治理、可观测性、评估和团队记忆，并最终探索企业级数字员工的演进路径。",[10,3083,3084],{},[19,3085,3086],{},"我们的目标不是重新发明一个通用 Agent，而是探索如何让 Agent 成为企业研发体系中可信、可控、可维护的协作参与者。",[96,3088,1107],{"id":1107},[10,3090,3091],{},"以下资料主要用于分析企业需求和架构方向。招聘信息具有时效性，厂商官方资料不等同于独立生产效果评测。",[80,3093,3094,3101,3108,3115,3122,3129,3136,3144,3152,3159],{},[83,3095,3096,3100],{},[26,3097,3099],{"href":1474,"rel":3098},[30],"滴滴招聘：AI Agent 基建平台架构师"," — Agent 生命周期、编排、运行时与稳定性要求。",[83,3102,3103,3107],{},[26,3104,3106],{"href":1484,"rel":3105},[30],"京东招聘：Agent 平台方向"," — Agent 平台与业务系统集成相关招聘资料。",[83,3109,3110,3114],{},[26,3111,3113],{"href":1656,"rel":3112},[30],"Google Cloud：Introducing Gemini Enterprise Agent Platform"," — 企业 Agent 平台能力与治理方向。",[83,3116,3117,3121],{},[26,3118,3120],{"href":1704,"rel":3119},[30],"Microsoft：Agent Identity"," — Agent 身份与授权管理。",[83,3123,3124,3128],{},[26,3125,3127],{"href":1735,"rel":3126},[30],"AWS：Secure AI Agents with AgentCore Gateway"," — Agent 工具执行的策略与安全控制。",[83,3130,3131,3135],{},[26,3132,3134],{"href":1762,"rel":3133},[30],"Salesforce Architects：The Agentic Enterprise"," — 企业 Agent 架构、语义层、编排与治理。",[83,3137,3138,3143],{},[26,3139,3142],{"href":3140,"rel":3141},"https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Foverview",[30],"LangGraph 官方文档"," — 有状态 Agent 工作流与运行时。",[83,3145,3146,3151],{},[26,3147,3150],{"href":3148,"rel":3149},"https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",[30],"OpenAI Agents SDK 官方文档"," — Agent、工具、交接与追踪。",[83,3153,3154,3158],{},[26,3155,3157],{"href":1182,"rel":3156},[30],"Model Context Protocol 官方文档"," — Agent 与外部工具、资源的标准化集成。",[83,3160,3161,3166],{},[26,3162,3165],{"href":3163,"rel":3164},"https:\u002F\u002Fgenai.owasp.org\u002F",[30],"OWASP GenAI Security Project"," — 生成式 AI 与 Agent 安全风险。",[3168,3169],"hr",{},[10,3171,3172],{},[13,3173,3174],{},"下一篇：《智能开发人员工作台：产品定位、研发任务模型与系统边界》",[10,3176,3177],{},"下一篇将从研发全流程出发，定义 WorkItem、Context、Artifact、Run、Evidence 与 Approval 等核心对象，分析开发人员、测试人员、Agent 和企业系统的职责边界，并进一步明确第一阶段产品范围。",{"title":72,"searchDepth":1187,"depth":1187,"links":3179},[3180,3184,3187,3194,3203,3204,3210,3217,3218,3219,3220],{"id":1262,"depth":1187,"text":1263,"children":3181},[3182,3183],{"id":1283,"depth":1192,"text":1284},{"id":1369,"depth":1192,"text":1370},{"id":1430,"depth":1187,"text":1431,"children":3185},[3186],{"id":1440,"depth":1192,"text":1441},{"id":1611,"depth":1187,"text":1612,"children":3188},[3189,3190,3191,3192,3193],{"id":1618,"depth":1192,"text":1619},{"id":1661,"depth":1192,"text":1662},{"id":1709,"depth":1192,"text":1710},{"id":1740,"depth":1192,"text":1741},{"id":1767,"depth":1192,"text":1768},{"id":1812,"depth":1187,"text":1813,"children":3195},[3196,3197,3198,3199,3200,3201,3202],{"id":1819,"depth":1192,"text":1820},{"id":1888,"depth":1192,"text":1889},{"id":1941,"depth":1192,"text":1942},{"id":2047,"depth":1192,"text":2048},{"id":2116,"depth":1192,"text":2117},{"id":2192,"depth":1192,"text":2193},{"id":2275,"depth":1192,"text":2276},{"id":2320,"depth":1187,"text":2321},{"id":2412,"depth":1187,"text":2413,"children":3205},[3206,3207,3208,3209],{"id":2439,"depth":1192,"text":2440},{"id":2487,"depth":1192,"text":2488},{"id":2518,"depth":1192,"text":2519},{"id":2534,"depth":1192,"text":2535},{"id":2635,"depth":1187,"text":2636,"children":3211},[3212,3213,3214,3215,3216],{"id":2642,"depth":1192,"text":2643},{"id":2669,"depth":1192,"text":2670},{"id":2702,"depth":1192,"text":2703},{"id":2735,"depth":1192,"text":2736},{"id":2762,"depth":1192,"text":2763},{"id":996,"depth":1187,"text":997},{"id":2941,"depth":1187,"text":2942},{"id":3022,"depth":1187,"text":3023},{"id":1107,"depth":1187,"text":1107},"wiki:agent:enterprise-ai-agent-system-requirements-challenges-architecture",{},1,"\u002Fagent\u002Fenterprise-ai-agent-system-requirements-challenges-architecture",{"title":31,"description":1254},"agent\u002Fenterprise-ai-agent-system-requirements-challenges-architecture","2026-11-09","Y8FDHHpExkmzJje9kXjNXYgjTuhrxsPM7nLhuhWe8Ac",{"id":4,"title":5,"body":3230,"commentId":1234,"description":15,"draft":1235,"extension":1236,"meta":4075,"navigation":1238,"order":1187,"path":1239,"section":1240,"seo":4076,"stem":1242,"updated":1243,"__hash__":1244},{"type":7,"value":3231,"toc":4029},[3232,3236,3240,3245,3247,3249,3259,3263,3268,3270,3278,3280,3282,3284,3286,3291,3293,3307,3309,3311,3313,3315,3317,3319,3321,3325,3327,3332,3334,3336,3338,3340,3362,3367,3369,3373,3375,3377,3379,3383,3387,3392,3394,3400,3402,3404,3406,3416,3420,3422,3424,3428,3520,3522,3528,3530,3532,3536,3540,3544,3548,3550,3552,3554,3556,3561,3563,3565,3567,3569,3574,3578,3580,3582,3584,3632,3634,3636,3638,3640,3644,3646,3648,3664,3666,3668,3670,3686,3688,3690,3692,3702,3704,3706,3708,3722,3724,3726,3728,3730,3744,3746,3748,3750,3752,3754,3759,3761,3763,3775,3777,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797,3813,3815,3817,3819,3823,3825,3827,3829,3831,3833,3835,3837,3839,3841,3859,3861,3866,3868,3870,3872,3874,3876,3878,3896,3898,3900,3902,3924,3926,3928,3930,3932,3966,3968,3970,3972,3976,3978],[10,3233,3234],{},[13,3235,15],{},[10,3237,3238],{},[19,3239,21],{},[10,3241,24,3242,32],{},[26,3243,31],{"href":28,"rel":3244},[30],[10,3246,35],{},[10,3248,38],{},[10,3250,41,3251,45,3253,49,3255,53,3257,57],{},[19,3252,44],{},[19,3254,48],{},[19,3256,52],{},[19,3258,56],{},[10,3260,60,3261,64],{},[19,3262,63],{},[66,3264,3266],{"className":3265,"code":70,"language":71,"meta":72},[69],[74,3267,70],{"__ignoreMap":72},[10,3269,78],{},[80,3271,3272,3274,3276],{},[83,3273,85],{},[83,3275,88],{},[83,3277,91],{},[10,3279,94],{},[96,3281,99],{"id":98},[101,3283,104],{"id":103},[10,3285,107],{},[66,3287,3289],{"className":3288,"code":111,"language":71,"meta":72},[69],[74,3290,111],{"__ignoreMap":72},[10,3292,116],{},[118,3294,3295,3297,3299,3301,3303,3305],{},[83,3296,122],{},[83,3298,125],{},[83,3300,128],{},[83,3302,131],{},[83,3304,134],{},[83,3306,137],{},[10,3308,140],{},[10,3310,143],{},[10,3312,146],{},[101,3314,150],{"id":149},[10,3316,153],{},[10,3318,156],{},[10,3320,159],{},[161,3322,3323],{},[10,3324,165],{},[10,3326,168],{},[66,3328,3330],{"className":3329,"code":172,"language":71,"meta":72},[69],[74,3331,172],{"__ignoreMap":72},[10,3333,177],{},[101,3335,181],{"id":180},[10,3337,184],{},[10,3339,187],{},[118,3341,3342,3346,3350,3354,3358],{},[83,3343,3344,194],{},[19,3345,63],{},[83,3347,3348,199],{},[19,3349,44],{},[83,3351,3352,205],{},[19,3353,204],{},[83,3355,3356,211],{},[19,3357,210],{},[83,3359,3360,217],{},[19,3361,216],{},[66,3363,3365],{"className":3364,"code":221,"language":71,"meta":72},[69],[74,3366,221],{"__ignoreMap":72},[10,3368,226],{},[10,3370,229,3371,233],{},[74,3372,232],{},[96,3374,237],{"id":236},[101,3376,241],{"id":240},[10,3378,244],{},[10,3380,247,3381,57],{},[74,3382,232],{},[10,3384,3385,254],{},[74,3386,232],{},[66,3388,3390],{"className":3389,"code":258,"language":71,"meta":72},[69],[74,3391,258],{"__ignoreMap":72},[10,3393,263],{},[10,3395,266,3396,269,3398,272],{},[74,3397,232],{},[74,3399,232],{},[101,3401,276],{"id":275},[10,3403,279],{},[10,3405,282],{},[118,3407,3408,3410,3412,3414],{},[83,3409,287],{},[83,3411,290],{},[83,3413,293],{},[83,3415,296],{},[10,3417,299,3418,303],{},[19,3419,302],{},[10,3421,306],{},[101,3423,310],{"id":309},[10,3425,313,3426,316],{},[74,3427,232],{},[318,3429,3430,3438],{},[321,3431,3432],{},[324,3433,3434,3436],{},[327,3435,329],{},[327,3437,332],{},[334,3439,3440,3448,3456,3464,3472,3480,3488,3496,3504,3512],{},[324,3441,3442,3446],{},[339,3443,3444],{},[74,3445,343],{},[339,3447,346],{},[324,3449,3450,3454],{},[339,3451,3452],{},[74,3453,353],{},[339,3455,356],{},[324,3457,3458,3462],{},[339,3459,3460],{},[74,3461,232],{},[339,3463,365],{},[324,3465,3466,3470],{},[339,3467,3468],{},[74,3469,372],{},[339,3471,375],{},[324,3473,3474,3478],{},[339,3475,3476],{},[74,3477,382],{},[339,3479,385],{},[324,3481,3482,3486],{},[339,3483,3484],{},[74,3485,392],{},[339,3487,395],{},[324,3489,3490,3494],{},[339,3491,3492],{},[74,3493,402],{},[339,3495,405],{},[324,3497,3498,3502],{},[339,3499,3500],{},[74,3501,412],{},[339,3503,415],{},[324,3505,3506,3510],{},[339,3507,3508],{},[74,3509,422],{},[339,3511,425],{},[324,3513,3514,3518],{},[339,3515,3516],{},[74,3517,432],{},[339,3519,435],{},[10,3521,438],{},[10,3523,3524,443,3526,446],{},[74,3525,232],{},[74,3527,353],{},[101,3529,450],{"id":449},[10,3531,453],{},[10,3533,3534,458],{},[74,3535,372],{},[10,3537,3538,463],{},[74,3539,382],{},[10,3541,3542,468],{},[74,3543,402],{},[10,3545,3546,473],{},[74,3547,432],{},[10,3549,476],{},[96,3551,480],{"id":479},[101,3553,484],{"id":483},[10,3555,487],{},[66,3557,3559],{"className":3558,"code":491,"language":71,"meta":72},[69],[74,3560,491],{"__ignoreMap":72},[10,3562,496],{},[101,3564,500],{"id":499},[10,3566,503],{},[10,3568,506],{},[66,3570,3572],{"className":3571,"code":510,"language":71,"meta":72},[69],[74,3573,510],{"__ignoreMap":72},[10,3575,515,3576,519],{},[74,3577,518],{},[101,3579,523],{"id":522},[10,3581,526],{},[10,3583,529],{},[318,3585,3586,3594],{},[321,3587,3588],{},[324,3589,3590,3592],{},[327,3591,538],{},[327,3593,541],{},[334,3595,3596,3602,3608,3614,3620,3626],{},[324,3597,3598,3600],{},[339,3599,548],{},[339,3601,551],{},[324,3603,3604,3606],{},[339,3605,556],{},[339,3607,559],{},[324,3609,3610,3612],{},[339,3611,564],{},[339,3613,567],{},[324,3615,3616,3618],{},[339,3617,572],{},[339,3619,575],{},[324,3621,3622,3624],{},[339,3623,580],{},[339,3625,583],{},[324,3627,3628,3630],{},[339,3629,588],{},[339,3631,591],{},[10,3633,594],{},[96,3635,598],{"id":597},[10,3637,601],{},[10,3639,604],{},[161,3641,3642],{},[10,3643,609],{},[101,3645,613],{"id":612},[10,3647,616],{},[118,3649,3650,3652,3654,3656,3658,3660,3662],{},[83,3651,621],{},[83,3653,624],{},[83,3655,627],{},[83,3657,630],{},[83,3659,633],{},[83,3661,636],{},[83,3663,639],{},[10,3665,642],{},[101,3667,646],{"id":645},[10,3669,649],{},[118,3671,3672,3674,3676,3678,3680,3682,3684],{},[83,3673,654],{},[83,3675,657],{},[83,3677,660],{},[83,3679,663],{},[83,3681,666],{},[83,3683,669],{},[83,3685,672],{},[10,3687,675],{},[101,3689,679],{"id":678},[10,3691,682],{},[118,3693,3694,3696,3698,3700],{},[83,3695,687],{},[83,3697,690],{},[83,3699,693],{},[83,3701,696],{},[10,3703,699],{},[101,3705,703],{"id":702},[10,3707,706],{},[118,3709,3710,3712,3714,3716,3718,3720],{},[83,3711,711],{},[83,3713,714],{},[83,3715,717],{},[83,3717,720],{},[83,3719,723],{},[83,3721,726],{},[10,3723,729],{},[101,3725,733],{"id":732},[10,3727,736],{},[10,3729,739],{},[118,3731,3732,3736,3740],{},[83,3733,3734,747],{},[19,3735,746],{},[83,3737,3738,753],{},[19,3739,752],{},[83,3741,3742,759],{},[19,3743,758],{},[10,3745,762],{},[10,3747,765],{},[96,3749,769],{"id":768},[101,3751,773],{"id":772},[10,3753,776],{},[66,3755,3757],{"className":3756,"code":780,"language":71,"meta":72},[69],[74,3758,780],{"__ignoreMap":72},[10,3760,785],{},[10,3762,788],{},[118,3764,3765,3767,3769,3771,3773],{},[83,3766,793],{},[83,3768,796],{},[83,3770,799],{},[83,3772,802],{},[83,3774,805],{},[10,3776,808],{},[96,3778,812],{"id":811},[10,3780,815],{},[10,3782,818],{},[101,3784,822],{"id":821},[10,3786,825],{},[101,3788,829],{"id":828},[10,3790,832],{},[10,3792,835],{},[101,3794,839],{"id":838},[10,3796,842],{},[118,3798,3799,3801,3803,3805,3807,3809,3811],{},[83,3800,847],{},[83,3802,850],{},[83,3804,853],{},[83,3806,856],{},[83,3808,859],{},[83,3810,862],{},[83,3812,865],{},[101,3814,869],{"id":868},[10,3816,872],{},[101,3818,876],{"id":875},[10,3820,879,3821,882],{},[74,3822,392],{},[101,3824,886],{"id":885},[10,3826,889],{},[101,3828,893],{"id":892},[10,3830,896],{},[101,3832,900],{"id":899},[10,3834,903],{},[10,3836,906],{},[96,3838,910],{"id":909},[101,3840,914],{"id":913},[10,3842,917,3843,920,3845,920,3847,920,3849,920,3851,920,3853,920,3855,920,3857,935],{},[74,3844,343],{},[74,3846,353],{},[74,3848,232],{},[74,3850,382],{},[74,3852,402],{},[74,3854,412],{},[74,3856,392],{},[74,3858,422],{},[10,3860,938],{},[66,3862,3864],{"className":3863,"code":942,"language":71,"meta":72},[69],[74,3865,942],{"__ignoreMap":72},[10,3867,947],{},[101,3869,951],{"id":950},[10,3871,954],{},[10,3873,957],{},[101,3875,961],{"id":960},[10,3877,964],{},[118,3879,3880,3882,3884,3886,3888,3890,3892,3894],{},[83,3881,969],{},[83,3883,972],{},[83,3885,975],{},[83,3887,978],{},[83,3889,981],{},[83,3891,984],{},[83,3893,987],{},[83,3895,990],{},[10,3897,993],{},[96,3899,997],{"id":996},[10,3901,1000],{},[118,3903,3904,3906,3908,3910,3912,3914,3916,3918,3920,3922],{},[83,3905,1005],{},[83,3907,1008],{},[83,3909,1011],{},[83,3911,1014],{},[83,3913,1017],{},[83,3915,1020],{},[83,3917,1023],{},[83,3919,1026],{},[83,3921,1029],{},[83,3923,1032],{},[10,3925,1035],{},[96,3927,1039],{"id":1038},[10,3929,1042],{},[10,3931,1045],{},[118,3933,3934,3938,3942,3946,3950,3954,3958,3962],{},[83,3935,1050,3936,1053],{},[74,3937,232],{},[83,3939,1050,3940,1058],{},[74,3941,372],{},[83,3943,1050,3944,1063],{},[74,3945,382],{},[83,3947,1050,3948,1068],{},[74,3949,392],{},[83,3951,1050,3952,1073],{},[74,3953,402],{},[83,3955,1050,3956,1078],{},[74,3957,412],{},[83,3959,1050,3960,1083],{},[74,3961,422],{},[83,3963,1086,3964,1089],{},[74,3965,432],{},[10,3967,1092],{},[10,3969,1095],{},[10,3971,1098],{},[10,3973,1101,3974],{},[19,3975,1104],{},[96,3977,1107],{"id":1107},[80,3979,3980,3985,3990,3995,4004,4009,4014,4019,4024],{},[83,3981,3982,1115],{},[26,3983,31],{"href":28,"rel":3984},[30],[83,3986,3987,1123],{},[26,3988,1122],{"href":1120,"rel":3989},[30],[83,3991,3992,1131],{},[26,3993,1130],{"href":1128,"rel":3994},[30],[83,3996,3997,1139,4000,920,4002,1145],{},[26,3998,1138],{"href":1136,"rel":3999},[30],[74,4001,518],{},[74,4003,1144],{},[83,4005,4006,1153],{},[26,4007,1152],{"href":1150,"rel":4008},[30],[83,4010,4011,1161],{},[26,4012,1160],{"href":1158,"rel":4013},[30],[83,4015,4016,1169],{},[26,4017,1168],{"href":1166,"rel":4018},[30],[83,4020,4021,1177],{},[26,4022,1176],{"href":1174,"rel":4023},[30],[83,4025,4026,1185],{},[26,4027,1184],{"href":1182,"rel":4028},[30],{"title":72,"searchDepth":1187,"depth":1187,"links":4030},[4031,4036,4042,4047,4054,4057,4067,4072,4073,4074],{"id":98,"depth":1187,"text":99,"children":4032},[4033,4034,4035],{"id":103,"depth":1192,"text":104},{"id":149,"depth":1192,"text":150},{"id":180,"depth":1192,"text":181},{"id":236,"depth":1187,"text":237,"children":4037},[4038,4039,4040,4041],{"id":240,"depth":1192,"text":241},{"id":275,"depth":1192,"text":276},{"id":309,"depth":1192,"text":310},{"id":449,"depth":1192,"text":450},{"id":479,"depth":1187,"text":480,"children":4043},[4044,4045,4046],{"id":483,"depth":1192,"text":484},{"id":499,"depth":1192,"text":500},{"id":522,"depth":1192,"text":523},{"id":597,"depth":1187,"text":598,"children":4048},[4049,4050,4051,4052,4053],{"id":612,"depth":1192,"text":613},{"id":645,"depth":1192,"text":646},{"id":678,"depth":1192,"text":679},{"id":702,"depth":1192,"text":703},{"id":732,"depth":1192,"text":733},{"id":768,"depth":1187,"text":769,"children":4055},[4056],{"id":772,"depth":1192,"text":773},{"id":811,"depth":1187,"text":812,"children":4058},[4059,4060,4061,4062,4063,4064,4065,4066],{"id":821,"depth":1192,"text":822},{"id":828,"depth":1192,"text":829},{"id":838,"depth":1192,"text":839},{"id":868,"depth":1192,"text":869},{"id":875,"depth":1192,"text":876},{"id":885,"depth":1192,"text":886},{"id":892,"depth":1192,"text":893},{"id":899,"depth":1192,"text":900},{"id":909,"depth":1187,"text":910,"children":4068},[4069,4070,4071],{"id":913,"depth":1192,"text":914},{"id":950,"depth":1192,"text":951},{"id":960,"depth":1192,"text":961},{"id":996,"depth":1187,"text":997},{"id":1038,"depth":1187,"text":1039},{"id":1107,"depth":1187,"text":1107},{},{"title":5,"description":15},1794320227618]