代理
在 Llama Stack 中,代理是一个强大的抽象,允许您构建复杂的 AI 应用程序。
Llama Stack 代理框架构建于模块化架构之上,允许构建灵活且功能强大的 AI 应用程序。本文档解释了关键组件及其协同工作方式。
核心概念
1. 代理配置
代理使用 AgentConfig
类进行配置,该类包含
模型:为代理提供动力的底层 LLM
指令:定义代理行为的系统提示
工具:代理可用于与外部系统交互的能力
安全护盾:确保负责任的 AI 行为的护栏
from llama_stack_client import Agent
# Create the agent
agent = Agent(
llama_stack_client,
model="meta-llama/Llama-3-70b-chat",
instructions="You are a helpful assistant that can use tools to answer questions.",
tools=["builtin::code_interpreter", "builtin::rag/knowledge_search"],
)
2. 会话
代理通过会话维护状态,会话代表一个对话线程
# Create a session
session_id = agent.create_session(session_name="My conversation")
3. 回合
与代理的每次交互称为“回合”,包含
输入消息:用户发送给代理的内容
步骤:代理的内部处理(推理、工具执行等)
输出消息:代理的响应
from llama_stack_client import AgentEventLogger
# Create a turn with streaming response
turn_response = agent.create_turn(
session_id=session_id,
messages=[{"role": "user", "content": "Tell me about Llama models"}],
)
for log in AgentEventLogger().log(turn_response):
log.print()
非流式
from rich.pretty import pprint
# Non-streaming API
response = agent.create_turn(
session_id=session_id,
messages=[{"role": "user", "content": "Tell me about Llama models"}],
stream=False,
)
print("Inputs:")
pprint(response.input_messages)
print("Output:")
pprint(response.output_message.content)
print("Steps:")
pprint(response.steps)
4. 步骤
每个回合包含多个步骤,这些步骤代表代理的思考过程
推理步骤:代理生成文本响应
工具执行步骤:代理使用工具收集信息
护盾调用步骤:执行安全检查
代理执行循环
有关代理回合中发生的更多详细信息,请参阅代理执行循环。