
上个月我在公司群里看到一条直击灵魂的吐槽“咱们那个 AI 助手除了会聊天还会干点啥”说实话这句话戳到我了。公司前前后后折腾了大半年GPU 也买了平台也上了最后业务部门的感知就是“会聊天”——问个政策、查个制度还行真要它干活立刻哑火。于是我做了一个决定不再把大模型当成一个“问答盒子”而是用 GPT-6 作为推理内核搭了一套真正能在企业里干活的工作伙伴并且把整套框架、配置和工具适配器全部开源了。这篇文章就是这次项目从 0 到 1 的全部记录包括设计思路、技术选型、核心实现、部署细节以及我踩过的坑。如果你是技术负责人、AI 应用开发工程师或者正在纠结“大模型到底怎么落地业务”这篇应该能给你一个可以直接抄作业的参考。1. 项目起点当一个 AI 助手只会聊天问题出在哪1.1 一次晨会引发的重构触发这个项目的直接原因是一次再普通不过的晨会。那天早上我们产品经理把上周的用户反馈简报发给 AI 助手问“帮我总结一下这周客户主要抱怨什么。”AI 倒是秒回列了一二三四五条看着挺全。但产品经理接着问“那这些抱怨集中在哪个模块要不要在今天的评审会上重点讨论”AI 卡住了因为它只能基于预先灌进去的知识库回答既查不了我们的工单系统也拉不了 Bug 数据库更别说根据这些数据主动整理一份评审提案。这个场景几乎是所有企业内部 AI 的通病模型能力很强但它被关在“对话框”里没有手脚、没有眼睛、没有工作记忆。它可以告诉你“应该怎么做”但永远不会“帮你做”。我统计了一下公司 AI 助手上线三个月后的日志78% 的调用是闲聊和重复问答真正能影响业务的调用不到 5%。这个数据让我意识到问题不在模型而在产品定位——我们造了一个会聊天的百科全书而不是一个能工作的同事。1.2 重新定位从“问答匣子”到“数字员工”想明白之后我重新定义了这个项目的目标不是做一个更强的聊天机器人而是做一个“数字员工”。数字员工和聊天机器人的区别我总结为三点。第一它要有任务拆解能力。你说“帮我把这周的新增工单按紧急程度整理出来并给对应负责人发提醒”它能拆成“拉数据—分类排序—生成提醒文案—调用 IM 发送”四个步骤而不是只给你一段“建议”。第二它要有工具调用能力。工单系统、知识库、代码仓库、日历、邮箱这些系统对模型来说都是“工具”它应该能像人一样使用它们。第三它要有上下文和记忆。它需要记住你之前处理过哪些项目、偏好什么格式、哪些模块是雷区而不是每轮对话都从零开始。这三条定下来技术选型就清晰了需要一个推理能力强、支持函数调用、并且可以私有化部署的大模型作为基座再配一套 Agent 框架把这些能力串起来。我选择的是 GPT-6 Astra 这个开源模型系列以及一套自研的轻量级 Agent 编排层。整个项目我们内部代号叫“工友”后来开源的时候沿用了这个名字。提示在你动手做类似项目时第一件事不是选模型而是想清楚这个 AI 在组织里到底扮演什么角色承担哪些 KPI边界在哪。没有角色定位后面所有技术决策都会偏离方向。2. 技术底座为什么选 GPT-6Agent 框架怎么设计2.1 GPT-6 Astra 打动我的三个核心点先说模型选型。我们内部对比过好几个开源模型最后选了 GPT-6 Astra理由不是它某一个指标特别强而是三个维度恰好都满足我们的场景。第一个是长上下文下的稳定性。企业场景里经常出现这种情况一份十几页的合同丢进来又要结合聊天记录里的讨论结论再让它输出修改建议。普通模型上下文一长前面内容就“忘”了或者中间部分开始胡编。GPT-6 Astra 在 128K 上下文的实际测试里长文本召回准确率比同类模型明显高这是我们做“项目会话”功能的基础。第二个是函数调用Function Calling的可靠率。Agent 系统里模型输出的格式直接决定任务能不能继续。我们测试了 500 组工具调用请求GPT-6 Astra 的 JSON 输出格式正确率在 98% 左右参数遗漏和类型错误很少这对自动化流程来说是决定性的。第三个是可私有化部署。企业的数据不能随便上公网GPT-6 Astra 提供了开源权重可以部署在内网。配合国产化环境一条 A100 或国产加速卡就能跑起来成本可控。模型选中之后我没有急着微调。原因很简单初期需求变化太快今天要接工单系统明天要接日历微调一次成本太高而且效果未必好。更合理的姿势是“基座模型 提示词 工具编排”。只有当某个场景持续稳定跑三个月、确实出现通用 Prompt 搞不定的格式问题才值得微调。目前我们整个系统零微调全部靠框架层解决。2.2 多 Agent 协作与记忆系统怎么搭单模型搞定不了的事情让多个模型分工。这是我们把系统命名为“工友”而不是“助手”的原因之一——它不是一个单体而是一个小团队。我们参考了多智能体协作的常见模式搭了三层角色。规划者Planner负责接收用户的目标性描述拆解成任务列表并决定每个任务调用哪个工具、由哪个执行者来处理。执行者Worker是最底层的操作员每个执行者绑定一个或一类工具比如“工单查询员”“代码搜索员”“文档撰写员”。验证者Verifier负责检查执行者的输出是否合理比如查询到的数据有没有明显冲突、生成的代码有没有语法错误、关键数字有没有凭空捏造。一个完整的任务流是Planner 拆解 → Worker 执行 → Verifier 检查 → 结果返回 Planner 汇总 → 输出给用户。这种三角色模式比单 Agent 强制 ReAct 循环稳定得多因为每一步都有人“盯着”。记忆系统我分了短期和长期两层。短期记忆就是当前任务会话的上下文缓存任务结束就清理避免上下文越滚越长导致模型变傻。长期记忆用的是向量数据库 会话摘要把每次任务的目标、关键决策、用户反馈沉淀下来。比如某个负责人习惯在工单上留英文备注系统跑几次之后就会自动记住这个偏好在生成通知文案时主动切换语言。这部分我用的开源向量库没有自研稳定优先。2.3 工具调用AI 长手脚的关键一步如果说模型是大脑那工具调用就是手脚。这一步做不好Agent 就是个空壳。我们实现的工具调用层有四个关键设计这里值得展开说。第一统一工具协议。所有工具工单 API、数据库查询、IM 发送、文件解析等都封装成同一个 JSON Schema 结构包括名称、描述、输入参数、输出格式。这样模型只需要学习一种调用规则不用为每个系统单独适配。第二参数校验和强约束。模型偶尔会幻觉出一些接口根本不存在的参数比如把一个工单的 ID 塞进用户查询里。我们的做法是“先校验、后执行”所有参数必须通过运行时校验类型不对就当场拦截并报错返回给模型重新生成宁可多一次重试也不要给下游系统传脏数据。第三权限矩阵。不是所有 Agent 都能调用所有工具。我们按角色配置了权限表比如“普通员工身份”的 Agent 只能查自己的工单和日历不能群发消息“管理员身份”才能执行批量操作。第四可追溯。每一次工具调用都记录操作人对应真实员工账号、时间、请求参数、返回内容全链路审计日志方便出问题后复盘。实操心得工具描述写得好不好直接决定调用准确率。刚开始我把工具描述写得特别简短结果模型老是把两个相似工具弄混。后来我把每个工具的描述改成一两句话里面带上使用场景、典型示例、甚至“什么情况下不要用这个工具”准确率瞬间提升了十个百分点。写工具描述和写需求文档一样别偷懒。3. 开源落地企业工作伙伴的完整实现3.1 开源仓库到底开源了什么项目决定开源的时候我纠结过一个问题如果把整个系统都丢出去公司内部的一堆对接代码和企业特定配置怎么办后来我想通了开源的不是我的业务而是一种“把大模型变成企业员工”的方法论。所以仓库里放了五块内容任何团队克隆下来替换掉企业内部的 API 地址和 Prompt 文案就能跑起来。第一块是 Agent 编排框架也就是上节说的 Planner、Worker、Verifier 三角色调度逻辑大约两千行 Python没引入太重的外部依赖。第二块是工具适配器集合覆盖了 HTTP API 调用、MySQL/PostgreSQL 查询、Webhook 发送、本地文件读写、Excel 解析等最常见的企业系统对接模式。第三块是 Prompt 模板库包括角色设定、任务拆解规则、工具选择规则、输出格式约束等几十个模板全部中英双语。第四块是 Docker Compose 一键部署脚本把模型推理服务、Agent 主服务、向量库、缓存全部编排好内网一条命令就能起全套。第五块是测试与评测集我整理了五十多个真实业务场景的测试用例覆盖任务拆解、工具调用、错误恢复、多轮对话等方便大家在同样的标准下对比效果。3.2 核心模块拆解与运行流程整个系统的运行流程我用一个实际的例子完整走一遍大家感受一下。假设员工在内部 IM 里对 AI 说“明天下午两点约产品部开周会顺便把上周的工单数据整理好放到共享文档里。”这句话先进到意图识别模块判断出这是一个“多步骤任务”然后交给 Planner。Planner 把任务拆成三条第一查询产品部成员的忙闲时间调用日历查询工具第二分析上周的工单数据并生成摘要调用工单系统 API 和数据分析模块第三创建会议室邀请和共享文档调用预定工具和文档工具。每个子任务分配一个 WorkerWorker 调用对应工具之后Verifier 检查结果会议室有没有冲突、数据摘要里的数字和原始数据是否一致、文档链接是不是真实可访问的。全部通过后Planner 汇总成一条自然语言消息回复给员工附带文档链接和会议邀请卡片。这个流程跑下来模型本身只负责“动脑”真正的“动手”全部由工具完成。框架层要保证的是任务拆解不遗漏、工具调用不错乱、结果校验不放过。这三个“不”看着简单实际写代码的时候全是细节。比如任务拆解我给 Planner 的 Prompt 里明确要求“每个子任务必须包含目标、执行者、工具、输入参数、期望输出”而且要输出结构化 JSON再由代码层强行校验字段完整性少一个字段就拒绝进入下一步。这样就把模型的“自由发挥”限制在了可控范围内。3.3 部署配置与 Prompt 设计要点部署方面我们最终采用的是双机架构一台模型推理服务部署 GPT-6 Astra一台应用服务跑 Agent 编排、向量库和 Webhook 接收端。两台上都在内网统一通过内部 DNS 互相访问。Docker Compose 里需要重点调几个参数模型服务的最大上下文长度设为 32K 起步太短的话复杂任务不够用太长则显存压力大向量库的 embedding 模型我们用本地的开源模型没有走外部接口应用服务的并发数先调到 10 个 Worker 进程测试稳定后再逐步增加。Prompt 设计这里有一条特别重要的经验系统提示词里不要只写“你是公司 AI 助手”那太虚了。我给每个角色都写了一份“岗位说明书”。比如 Planner 的说明书里写清楚你是一个任务规划专员你只能做任务拆解禁止直接回答用户问题你必须把所有任务以 JSON 数组输出当你发现用户的请求违反公司规定时输出一个类型为 REFUSE 的特殊任务。这种写法让模型的角色边界非常清晰不会出现“规划者替执行者干活”的情况。所有 Prompt 模板我都放在了开源仓库的 prompts 目录下标注了每个模板的适用场景和版本变更记录大家可以直接改。注意Prompt 模板一定会随着项目迭代频繁修改强烈建议加一层 Prompt 版本管理不要把 Prompt 硬编码在代码里。我们放在数据库里线上可以随时调整调整记录可回溯出问题还能一键回滚到上一个版本。这个习惯帮我省了不知道多少事。4. 真实使用记录效果、问题和排查手册4.1 上线三周后数据发生了什么变化项目上线三周我拉了一版真实数据效果比我预期要好但问题也不少。先说好的部分。我们把“工单智能分诊”和“日报周报自动汇总”两个场景作为首批落地前者让工单分类打标的准确率从人工的 82% 提升到 91%后者把技术部每周花在汇总数据上的时间从人均 1.5 小时压缩到 20 分钟。IM 里 AI 的调用量里闲聊比例从原来的 78% 降到了 30% 左右剩下 70% 都是真实的任务型请求比如查数据、找文档、生成周报初稿。这个转变让我确认了一件事用户其实很愿意让 AI 干活只要它真的干得好。但问题也很明显。开头两周Agent 在 12% 的任务里出现了部分失败比如拆解任务时漏掉了一步或者工具调用超时没有妥善处理直接把错误抛给了用户。经历过那段时期的同事对 AI 的信任度有明显下降。这也是我把“错误恢复”列为系统核心能力的原因——对于一个工作伙伴来说犯错不可怕可怕的是犯错之后不补救。后来我们给每个 Worker 都加了“失败重试 降级方案”逻辑调用工单系统失败自动重试两次还是不行就把部分可用的数据先返回并在回复里明确标注“以下数据不完整系统超时”绝不让用户拿到一份看似完整实则有缺失的报告。4.2 我踩过的五个坑希望你避开第一个坑工具调用“裸奔”。早期我们让 Agent 直接操作生产数据库只给了 SELECT 权限限制结果有一次模型生成了一个不带 WHERE 条件的聚合查询差点把数据库跑挂。教训是任何工具接入前必须过一遍“最坏情况模拟”数据库查询强制加 LIMITIM 发送必须二次确认文件删除类操作要跳到人工审批。第二个坑上下文只加不减。刚开始我们贪心为了让模型记住更多信息每轮对话都保留全部历史。结果上下文一长响应变慢、准确率下降还烧钱。后来改成“任务级对话窗口 滚动摘要”当前任务结束就把细节归档只保留摘要进入下一轮效果立竿见影。第三个坑验证者失守。Verifier 模块的设置如果太宽松等于没有。早期我们的验证者只是查一下输出格式是否符合 JSON 规范结果模型输出的内容格式全对但事实错误一堆验证者照样放行。后来我重写了验证规则要求验证者必须把输出里的关键数据和工具返回的原始数据进行逐项比对差异超过阈值就标记为“验证不通过”。第四个坑权限边界太粗。最开始我们按部门分权限结果发现同一个部门里普通员工和项目负责人能做的事情差很多。后来改成“最小权限 按角色动态分配”每次任务开始前动态计算该用户能调用的工具集颗粒度细了安全风险也就小了。第五个坑模型输出里带幻觉小尾巴。虽然 GPT-6 Astra 已经很强但偶尔还是会编造一些来源不明的数据。我的应对策略是在 Prompt 里强制要求“每个数据点必须标注来源”并在代码层检查输出里的引用标记是否真实存在于检索结果里。凡是查不到来源的一律自动删除并打回重写。4.3 常见问题排查速查表这里放一个我后来写进项目 Wiki 的排查表团队遇到问题时直接对着查省了很多沟通成本。症状可能原因排查步骤解决方案Agent 答非所问不走工具意图识别把任务型请求误判成闲聊查看意图识别日志确认用户输入的置信度补充同义句样本优化意图分类提示词工具调用频繁报参数错误模型生成的参数类型与工具定义不符打开参数校验日志找出最常见的报错类型在工具描述中补充参数示例加强 JSON Schema 校验任务拆解漏步骤Planner 没有充分理解用户需求回放 Planner 的推理输出改进任务拆解模板加入场景化示例多轮对话后回答质量下降上下文过长或存在过期信息检查上下文 token 数量和内容更新时间启用滚动摘要清理过期消息Agent 死循环反复调用同一工具没有设置调用次数上限查看执行日志统计调用次数在框架层限制单任务最大工具调用次数超过即中断并返回部分结果结果数据与用户掌握的事实不符检索层召回不足或幻觉对比召回文档和输出数据优化索引分块策略加强验证者逐项核对这张表的价值在于大部分问题不是“模型不行”而是“框架没有兜住模型可能犯的错”。做企业级 AI别指望模型完美要指望机制可靠。4.4 一些值得长期做的事情项目走到这里功能已经稳定但我心里清楚真正的硬骨头还在后面。目前我们只在三个场景里跑通了“数字员工”全公司还有大量流程没有被结构化、被数字化。比如合同初审、报销合规检查、监控告警分析这些业务逻辑复杂、判断标准模糊的场景才是 Agent 未来真正的主战场。我接下来打算做三件事一是把现有 Agent 的决策过程做成可视化回放让业务人员能看懂 AI 是怎么一步步干活的这比任何说明文档都有效二是建立一个“技能商店”让业务部门自己通过简单的配置界面组合工具和 Prompt生成专属的小助手而不是每次都由开发团队介入三是持续收集 Agent 的“失误样本”每隔一段时间用这些样本反向评估模型和框架的薄弱点形成迭代闭环。如果你们公司也在做类似的事情我强烈的建议是从一个最高频、最低风险、最容易衡量价值的场景切入先在真实业务里建立起大家对 AI 的信任然后再慢慢扩展。毕竟AI 在公司里最终能不能立住从来不是看模型榜单上的分数而是看它到底帮人省了多少时间、少干了几次重复劳动。这个仓库开源之后陆续有一些同行来问实现细节也有人把我们的框架跑起来接了他们自己公司的系统。我个人的感触是GPT-6 这类模型只是把“智能”这个原材料摆在了我们面前真正有价值的是我们怎么把它揉进业务流程里变成一个个靠谱、可控、不出轨的数字同事。希望这篇记录能让你少走一些弯路也希望看到更多团队把 AI 从“聊天框”里解放出来真正开始干活。