在自动化流程和智能决策领域,智能体(Agent)技术正成为开发者工具箱中的核心组件。不同于传统脚本的线性执行,现代智能体框架赋予了程序自主感知、决策和执行的能力。根据技术栈和适用场景的差异,当前主流的开发框架可分为以下几类:
python复制# LangChain的ReAct模式示例
from langchain.agents import load_tools
agent = initialize_agent(
tools=load_tools(["serpapi"]),
llm=ChatOpenAI(temperature=0),
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION
)
mermaid复制graph TD
A[输入] --> B{规则匹配}
B -->|匹配成功| C[执行动作]
B -->|匹配失败| D[LLM推理]
D --> E[新增规则]
| 框架 | 工具注册方式 | 调用协议 | 执行隔离级别 |
|---|---|---|---|
| LangChain | 装饰器注册 | 同步HTTP | 进程级 |
| AutoGen | 配置文件声明 | gRPC | 容器级 |
| Transformers | 模型库自动发现 | 异步消息队列 | 线程级 |
python复制# 使用Celery实现任务分发
from celery import Celery
app = Celery('agent_worker', broker='redis://localhost:6379/0')
@app.task
def run_agent(prompt):
return agent_executor.run(prompt)
yaml复制- job_name: 'agent_metrics'
static_configs:
- targets: ['localhost:9091']
agent.toolkit.get_tools()inspect.signature(tool.run)tool.run("test input")python复制# 在AgentExecutor中添加终止条件
def should_terminate(intermediate_steps):
last_actions = [s[0].tool for s in intermediate_steps[-5:]]
return len(set(last_actions)) == 1
python复制class CustomTool(BaseTool):
name = "geo_calculator"
description = "计算两地间距离"
def _run(self, loc1: str, loc2: str):
from geopy.distance import geodesic
return f"{geodesic(loc1, loc2).km}公里"
python复制# AutoGen中的竞标实现
def bid_evaluation(agents, task):
return max(agents, key=lambda a: a.specialty_score(task))
python复制def consensus_voting(proposals):
from collections import Counter
return Counter(proposals).most_common(1)[0][0]
关键提示:生产环境中建议为每个工具添加超时控制:
python复制@timeout_decorator.timeout(5) def tool_execution_wrapper(): # 工具实际执行代码
在实际项目中发现,合理设置temperature参数对Agent稳定性影响显著:
对于需要处理长上下文的场景,可采用分片记忆策略: