这个Agent目前能自己生成并执行Python代码,能发起带分支和循环的复杂任务,还能在运行后检查自己的能力和结果。它能把内部逻辑写成代码,然后用运行结果来决定下一步行动。

说到这一步,先从运行时说起。每个Agent对应一个线程,线程池里同时跑着各种Area和Act。执行流程有ID登记、上下文准备、启动Python进程、实时监控、结果回收和资源清理。这套流程由一个Java端的PythonExecutionEngine负责调度:Java发起运行,Python执行代码,调用工具时再回调到Java,Java负责监控和调度。我们还在监控层加了ExecutionMonitor,能实时跟踪执行状态,出问题能及时暴露。
代码怎么跟系统工具打通,是关键。我们采用了一个桥——Toolkit Bridge,用Py4j把Python和Java串起来。Java端开一个Gateway Server,Python连上后来就能相互调用。每次运行前,Java会把session_id、trace_id和用户信息塞进SessionContext,Python端就知道当前是谁、哪个会话。为了让Python像本地调用一样用Java的工具,我们做了一个PythonToolkitProxy做动态代理,参数、类型、序列化里踩过不少坑,最后统一把参数规范化为JSON传递,复杂Java对象在边界上转成Python字典。

再往前看,是Toolkit体系。工具包被分成四类:自定义卡片、Mcp适配、Agent间协作和一些通用工具。卡片工具解决交互表现,组件化设计支持各种卡片类型。Mcp Toolkit做外部服务的标准接口,方便接入第三方能力。Agent Toolkit定义了Agent之间的A2A协议,任务复杂时可以把事交给别人做。工具包注册有两种路子:动态实现接口的方式和注解式声明的方式,互不干扰。ToolkitMapper在Java端负责路由:拿到toolkit_name就找实现class,并调用对应方法。为了让Python上次运行的临时参数能带到下次,我们在Java那头对数据做Base64编解码,传回Python时再恢复。
说回Agent内部结构,这套系统把功能按大脑分区拆了五块:感知、认知、运动(高级认知)、表达、自我评估。感知区接收外界输入——用户消息、卡片点击、子Agent返回的异步结果,先跑一轮预处理。认知区由IntentPlanner负责,它把解析后的输入用Segment机制拼成Prompt,生成代码并提交给Python执行引擎。运动区承担高复杂度任务,遇到认知区无法一次性解决的问题,就在运动区开启内部循环,用Segment一步步推进。表达区把结果发给用户,支持文字和卡片。任务执行后会触发自我评估区的SelfTaskCheck,发现失败会回退或重试。

Prompt和上下文拼装是决策链的核心。我们的基本单元是Segment,用一种”标签+内容”的方式组合成Prompt,类似把不同片段按顺序塞进模型。配置化的Prompt包含基础配置、行为规范、能力增强和经验等模块。用户提示由Segment列表组成,按时间序列排列;生成代码时还会用到FIM格式做续写优化,这对代码生成更稳。
记忆系统也是重点。短期记忆基于Session级别,用ES存储,会话、实体和工作记忆都按统一的Segment格式保存。短期里有段落记忆、实体记忆和基础消息三类结构,用来维持上下文连续性。长期记忆负责沉淀经验和知识点,未来会接知识图谱,把经人工审核和大模型投票后的经验存进知识库。经验记录表会把每轮执行的起因、经过、结果和思考存档,后面检索出来能拼到Prompt里。我们也意识到单纯的向量检索不够精准,正在尝尝试索引来优化召回。

系统演进上有来龙去脉。Agent 1.0和2.0最开始都走的是LLM输出JSON加固定文本前缀的模式,直观但问题多。频繁调用Mcp和Agent时,速度和成功率难以兼得:为稳掉速、为快牺牲灵活,陷入死循环。2.0虽然重构了逻辑,但一旦起点出错就难以纠偏。后来从Github Copilot Agent得到启发:它用JS定义工具,这让我们想通一个事——直接让Agent写代码来管理自身逻辑,代码既是决策也能被执行和监控。
实现过程中AI也帮了忙。编码驱动的环节里,大致有半数代码是AI直接写出来的,某些模块甚至高达八成。人类工程师主要负责设计框架、梳理边界和处理复杂的工程细节。

一些工程细节值得一提。参数处理时我们用装饰器捕捉函数运行参数,优先使用命名参数,自动把位置参数转成命名形式,复杂类型做动态转换,最终统一序列化传回Java并存Redis。下次执行就能把上次的临时变量感知到。Prompt装配从最初的混乱900行大Prompt,演进到用模板+Builder模式拼接,结构清楚许多。执行时的监控、日志、评测、记忆淘汰机制等也逐步补齐。
目标定位上,我们希望它像个“师弟”,能在DevOps里当上1.5线答疑助手,具备初级程序员的能力和持续学习能力。接下来要做的事包括让Prompt拼接更动态,把IntentPlanner和TaskExecutor的底层能力进一步融合,做更精细的任务上下文隔离,保持知识点和经验数据的新鲜,以及增强Mcp和Agent生态的深度和广度。还打算把日志、观测、报表等观测体系补齐,并开发桌面唤起程序,随时可用。






