Agentic Engineering

什么是Agentic Engineering

Agentic Engineering(代理工程 /                                               

  智能体工程)是指构建能够自主规划、决策和执行任务的 AI 系统的工程实践。      

                                                                                

  核心概念                                                                      

                                                                                

  什么是 "Agentic" 系统?                                                       

                                  

  与传统软件按预设规则执行不同,Agentic 系统具备:

 

  ┌───────────┬───────────────────────────────────────────────────┐

  │   特性    │                       说明                        │

  ├───────────┼───────────────────────────────────────────────────┤

  │ 自主性    │ 能独立分析目标、制定计划并执行,无需人工逐步指导  │

  ├───────────┼───────────────────────────────────────────────────┤

  │ 工具使用  │ 可调用 API、查询数据库、执行代码、操作文件等      │

  ├───────────┼───────────────────────────────────────────────────┤

  │ 推理能力  │ 基于 LLM 进行逻辑分析、问题解决和决策             │

  ├───────────┼───────────────────────────────────────────────────┤

  │ 记忆/状态 │ 保持上下文,从交互中学习,维护长期状态            │

  ├───────────┼───────────────────────────────────────────────────┤             

  │ 适应性    │ 面对意外情况能调整策略,而非 rigidly 遵循固定流程 │

  └───────────┴───────────────────────────────────────────────────┘             

                            

  与传统软件工程的对比            

 

  传统软件工程:

  输入 → [固定规则/逻辑] → 输出

           ↓

        确定性执行

 

  Agentic Engineering:

  目标 → [推理/规划] → 工具调用 → 观察结果 → 调整策略 → ...

           ↓              ↓

        LLM 推理      与环境交互

 

  实际例子

 

  1. Claude Code 本身 - 能理解你的需求,自主读取文件、编辑代码、运行命令        

  2. 自动化研究助手 - 给定主题,自动搜索、整理、生成报告

  3. 智能客服 - 不仅回答问题,还能查询订单、发起退款、协调人工                  

  4. 代码审查 Agent - 自动分析 PR,提出修改建议,甚至直接修复问题

                                  

  关键技术栈

 

  - LLM(如 Claude、GPT)- 提供推理能力

  - Tool Use / Function Calling - 与外部系统交互

  - Memory 系统 - 长期记忆和上下文管理

  - 多 Agent 协作 - 多个专业 Agent 分工合作                                     

  - Human-in-the-loop - 关键节点人工确认

                                                                                

  为什么重要?              

                                  

  Agentic Engineering 代表了从 "AI 作为工具" 到 "AI 作为协作者" 的转变。它让软件

  系统能够处理开放式、复杂、多步骤的任务,而不需要为每种情况预先编程。

 

  ---

  简单说:Agentic Engineering = 让 AI

  像人一样思考-行动-观察-调整,而不仅仅是执行预设指令。

 

如何应用Agentic Engineering

应用 Agentic Engineering 解决问题,需要分层技术栈 +                           

  系统化的工程实践。以下是完整框架:                                            

                                                                                

  一、技术栈分层                                                                

                                                                                

  1. 模型层(推理引擎)                                                         

                                  

  ┌───────────┬──────────────────┬──────────────────────────────────────────┐   

  │   组件    │       选择       │                 关键考量                 │

  ├───────────┼──────────────────┼──────────────────────────────────────────┤

  │ 基础模型  │ Claude/GPT/Gemin │ 推理能力 > 生成能力,支持 tool use       │

  │           │ i                │                                          │

  ├───────────┼──────────────────┼──────────────────────────────────────────┤   

  │ 模型路由  │ LiteLLM, Router  │ 按任务复杂度选择模型(简单任务用轻量模型 │

  │           │                  │ )                                       │   

  ├───────────┼──────────────────┼──────────────────────────────────────────┤

  │ 结构化输  │ JSON Schema,     │ 强制模型输出可解析的结构化数据           │

  │ 出        │ Pydantic         │                                          │

  └───────────┴──────────────────┴──────────────────────────────────────────┘

 

  2. 工具层(Action 接口)

 

  # 工具定义示例

  tools = [                                                                     

      {

          "name": "search_database",                                            

          "description": "查询用户订单信息",

          "parameters": {         

              "order_id": "string, 订单号",

              "fields": "array, 需要返回的字段"

          }

      },

      {

          "name": "refund_order",

          "description": "发起订单退款,需要用户确认",

          "parameters": {...}

      }

  ]

 

  常见工具类型:

  - 数据工具:SQL 查询、API 调用、文件读写

  - 计算工具:代码执行(Python/Node)、数学计算

  - 通信工具:发送邮件、消息通知、创建工单

  - 决策工具:规则引擎、风险评估、人工审批                                      

   

  3. 记忆层(状态管理)                                                         

                            

  ┌──────────┬───────────────────────────────┬──────────────────────┐

  │ 记忆类型 │           技术实现            │         用途         │

  ├──────────┼───────────────────────────────┼──────────────────────┤           

  │ 短期记忆 │ Conversation Buffer           │ 当前对话上下文       │

  ├──────────┼───────────────────────────────┼──────────────────────┤           

  │ 工作记忆 │ 结构化存储(JSON/YAML)       │ 任务执行中的中间状态 │

  ├──────────┼───────────────────────────────┼──────────────────────┤

  │ 长期记忆 │ 向量数据库(Pinecone/Milvus) │ 历史经验、知识库检索 │

  ├──────────┼───────────────────────────────┼──────────────────────┤           

  │ 程序记忆 │ 技能库(Skill Library)       │ 可复用的工具组合     │

  └──────────┴───────────────────────────────┴──────────────────────┘           

                            

  4. 编排层(控制流)             

 

  - ReAct 循环:推理 → 行动 → 观察 → 重复

  - Plan-and-Execute:先规划步骤,再逐条执行

  - 多 Agent 协作:Manager-Worker、 debate、 pipeline 模式

  - 人机协作:关键决策点人工确认(HITL)

                                                                                

  5. 监控与评估层

                                                                                

  - Tracing:Langfuse, LangSmith, OpenTelemetry

  - 评估框架:LLM-as-judge、规则检查、人工标注

  - A/B 测试:不同提示/策略的效果对比

 

  ---

  二、应用者需要做的事

 

  Phase 1: 问题建模(最关键)

 

  判断问题是否适合 Agentic 方案:

 

  ✅ 适合:

  - 步骤不固定,需要动态决策(如客服、研究助手)

  - 涉及多系统协作(需要查数据、调 API、发通知)

  - 容错性较高,可以迭代修正

                                                                                

  ❌ 不适合:

  - 确定性流程(传统 if-else 更清晰)                                           

  - 高风险操作(医疗诊断、金融交易)需严格限制

                                  

  Phase 2: 设计工具集

 

  原则:工具粒度要适中,描述要清晰

 

  # 不好的设计

  def process_everything(data):  # 太粗,模型无法灵活组合

      ...

 

  def add(a, b):  # 太细,增加调用开销

      return a + b

                                                                                

  # 好的设计  

  def query_user_orders(user_id, status=None, time_range=None):                 

      """查询用户订单,支持按状态和时间筛选"""

      ...                         

 

  def cancel_order(order_id, reason):

      """取消订单,会检查订单状态是否允许取消"""

      ...

 

  Phase 3: 构建控制循环

 

  # 简化的 ReAct 循环框架

  class Agent:

      def run(self, task):

          context = {"task": task, "steps": []}

 

          while not self.is_complete(context):

              # 1. 推理下一步

              action = self.llm.plan(context, self.tools)                       

   

              # 2. 执行工具                                                     

              observation = self.execute(action)

                                  

              # 3. 更新状态

              context["steps"].append({"action": action, "result": observation})

 

              # 4. 检查是否需要人工介入

              if action["type"] == "human_confirm":

                  return self.wait_for_human(context)

 

          return self.generate_result(context)

 

  Phase 4: 设计记忆策略

 

  关键决策:

  - 什么需要记住?(用户偏好、中间结果、错误经验)

  - 记忆如何检索?(向量相似度、关键词、时间衰减)                              

  - 记忆如何更新?(覆盖、追加、版本化)

                                                                                

  Phase 5: 安全防护(必须) 

                                  

  ┌──────────┬────────────────────────────────┐

  │   风险   │            防护措施            │

  ├──────────┼────────────────────────────────┤

  │ 工具滥用 │ 权限控制、操作白名单、速率限制 │

  ├──────────┼────────────────────────────────┤

  │ 无限循环 │ 最大步数限制、超时机制         │

  ├──────────┼────────────────────────────────┤

  │ 幻觉     │ 工具结果校验、置信度阈值       │

  ├──────────┼────────────────────────────────┤

  │ 数据泄露 │ 敏感信息脱敏、审计日志         │

  └──────────┴────────────────────────────────┘                                 

   

  Phase 6: 评估与迭代                                                           

                            

  建立评估集:                    

  test_cases:

    - input: "帮我查昨天下的订单为什么还没发货"

      expected_tools: ["query_recent_orders", "check_shipment_status"]

      expected_outcome: "返回订单号和物流状态"

 

    - input: "我要退款"

      expected_tools: ["query_eligible_orders", "initiate_refund"]

      requires_human_confirm: true

 

  监控指标:

  - 任务完成率

  - 平均步数/耗时

  - 工具调用准确率

  - 人工介入率                                                                  

   

  ---                                                                           

  三、典型架构示例          

                                  

  ┌─────────────────────────────────────────┐

  │              User Interface             │

  └─────────────────┬───────────────────────┘

                    ▼

  ┌─────────────────────────────────────────┐

  │  Orchestrator (ReAct / Plan-Execute)   │

  │  - 任务分解                             │

  │  - 状态管理                             │

  │  - 循环控制                             │

  └─────────────────┬───────────────────────┘

                    ▼

  ┌─────────────────────────────────────────┐

  │  LLM Core (Claude/GPT)                 │

  │  - 推理决策                             │

  │  - 工具选择                             │

  │  - 结果生成                             │                                   

  └─────────────────┬───────────────────────┘

                    ▼                                                           

  ┌─────────────────────────────────────────┐

  │  Tool Registry                          │

  │  ├─ Data Tools (SQL/API)               │

  │  ├─ Action Tools (Write/Notify)        │

  │  └─ Compute Tools (Code/Search)        │

  └─────────────────────────────────────────┘

                    ▼

  ┌─────────────────────────────────────────┐

  │  Memory Store                           │

  │  ├─ Short-term: Redis/Context          │

  │  ├─ Long-term: Vector DB               │

  │  └─ Skill Library: File/DB             │

  └─────────────────────────────────────────┘                                   

   

  ---                                                                           

  四、快速启动建议          

                                  

  1. 从简单开始:先用 2-3 个工具 + ReAct 循环跑通一个场景

  2. 观察失败模式:记录 Agent 出错的情况,针对性优化提示或工具

  3. 逐步放权:初期所有操作需确认,稳定后再开放自动执行

  4. 建立回退机制:Agent 卡住时能优雅降级到人工处理

posted on 2026-05-18 19:27  golden_wind  阅读(74)  评论(0)    收藏  举报