内容提要
本文介绍为游戏业务团队构建的只读代码问答Agent。系统集中存储代码副本和索引,通过只读MCP工具查询,支持策划、测试、运营等人员用中文提问并获取带证据的答案。相比通用桌面Agent,集中式架构更安全、易管理。实测端到端耗时36-58秒,较基线缩短至三分之一到五分之一,模型费用单次约0.167美元。
延伸解读
集中式架构的安全优势
相比通用桌面Agent,集中式只读架构将代码副本统一保存在索引主机,会话环境不挂载仓库,也不提供Shell、文件写入或Git工具。这减少了代码副本和凭证在终端分散的风险,同时通过只读工具白名单、VPC内访问和项目信任域隔离,降低了越权访问和误操作的可能。但需注意,仓库中的敏感信息仍可能被文件工具读取,常规安全流程不可省略。
性能瓶颈不在索引查询
实测显示,CodeGraph索引查询仅需1-5毫秒,而端到端问答耗时36-58秒,其中模型调用链路约占98%。工具调用中位7次,合计仅0.26秒。因此,优化重点应放在减少首轮检索词偏差、无效工具往返和总轮次上,而非继续压缩索引查询时间。冷启动会使中位耗时从52秒增至64秒,也值得关注。
成本构成与注意事项
近30天843次问答的模型费用平均每次0.167美元,其中约一半来自输出token,另一半来自提示词缓存读取。但基础设施费用(如EC2、AgentCore、EBS)未计入。此外,术语表全量生成是可选成本,约1.4万文件的项目需372美元,且纯英文项目可能不值得执行。
适用边界与限制
该方案适合大量只读代码事实查询,但不支持运行游戏引擎、数值模拟、修改配置或比较分支。代码仓库可能不含线上实时配置(如热更新参数),当前未接入配置中心,因此答案可能反映默认值或过期快照。试用中也发现客户自定义脚本格式需要适配,说明解析能力需持续扩展。
Q&A
这个只读代码问答 Agent 是做什么的?
这个 Agent 是为游戏业务团队(策划、测试、运营、客服)构建的,用于查询代码和配置中的事实信息,比如技能规则、触发条件、活动奖励等。它通过只读工具访问集中存储的代码副本和索引,用中文提问,返回带证据的答案。
为什么不用通用桌面 Agent 而采用集中式架构?
通用桌面 Agent 需要把仓库下载到个人终端,并开放文件系统、Shell、代码执行等工具,对业务人员来说权限过大,存在代码副本分散、凭证泄露风险、工具误操作、版本混乱和日志不一致等问题。集中式只读服务更容易统一代码范围、版本、工具权限和审计策略,更安全且易管理。
这个 Agent 如何实现中文问题检索英文代码符号?
索引主机会离线扫描候选文本(代码、配置、README、设计文档),把真实出现的中文业务词与英文符号关联,生成术语表。查询时,术语表为 Agent 增加检索词,帮助将中文问题映射到英文代码符号。但术语表不参与最终事实判断,答案仍需回到源码或配置表核对。
这个 Agent 的端到端耗时和成本大概是多少?
实测端到端耗时中位数约为 49 至 56 秒,四批测试中索引路径耗时为 36 至 58 秒,基线路径为 128 至 265 秒,用户等待时间降到原来的约五分之一至三分之一。模型费用单次平均约 0.167 美元,中位数 0.146 美元。
这个 Agent 有哪些安全防护措施?
安全措施包括:只暴露只读工具(最多9个),不启用 Bash、本地读写和提交工具;集中存储代码副本,减少凭证暴露;代码访问链路位于 VPC 内,索引接口端口只向指定安全组开放;根据项目信任关系选择隔离方式;实施提示词注入防护,关闭文件系统配置来源,并忽略代码中的行为指令。
这个 Agent 适合在什么条件下采用?
适合采用的条件包括:存在大量或持续增长的只读代码和配置事实查询需求;可以根据调用量扩展 Runtime 会话池和索引服务容量;可以明确仓库清单、版本来源和代码同步责任;业务人员需要易读答案,研发可以处理歧义和设计判断;项目处于同一信任域,或愿意为不同信任域部署独立主机。
这个 Agent 有哪些局限性?
局限性包括:不运行游戏引擎、不做数值模拟、不修改配置、不提交代码、不比较分支;无法获取线上实时配置(如热更新参数、功能开关),只能看到代码默认值或过期快照;术语表生成需要额外成本,且纯英文项目可能没有可用映射;当前机制只能发现可疑回答,尚未形成可发布的准确率指标。