一键导入
agent-loop
AgentLoop 是整个 Agent Harness 的心脏。使用此 skill 当你需要: - 构建新的 Agent 系统 - 理解 Model + Harness 的关系 - 使用 chat() 快捷函数进行单轮对话
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
AgentLoop 是整个 Agent Harness 的心脏。使用此 skill 当你需要: - 构建新的 Agent 系统 - 理解 Model + Harness 的关系 - 使用 chat() 快捷函数进行单轮对话
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
多 Agent 协作机制,持久 agent + 异步通信 + 团队管理。 使用此 skill 当你需要: - 理解 Agent Teams 的工作方式 - 使用 MessageBus 进行 agent 间通信 - 使用 TeammateManager 管理持久 agent 线程
Agent Team 通信协议 FSM:shutdown / plan_approval。 使用此 skill 当你需要: - 实现优雅关闭协议 - 实现计划审批协议 - 理解 s10 Team Protocols 的状态机设计
3层 Context 压缩策略,支持无限长度会话。 使用此 skill 当你需要: - 理解 Context 压缩的原理 - 实现消息历史摘要 - 处理超长对话导致 context overflow
基于文件的 TaskManager,任务持久化 + 依赖图。 使用此 skill 当你需要: - 创建跨会话持久化的任务 - 管理任务间的 blockedBy/blocks 依赖关系 - 理解 s07 TaskSystem 的文件格式
工具注册与分发机制。使用此 skill 当你需要: - 注册新的 tool handler - 理解工具定义(tools list)和工具执行(handlers dict)的分离 - 使用 make_default_dispatcher 快速创建默认工具集
| name | agent-loop |
| description | AgentLoop 是整个 Agent Harness 的心脏。使用此 skill 当你需要: - 构建新的 Agent 系统 - 理解 Model + Harness 的关系 - 使用 chat() 快捷函数进行单轮对话 |
"The model IS the agent. The code is the harness."
两者各司其职,不能互相替代。
while stop_reason == "tool_use":
response = LLM(messages, tools)
execute each tool call
append results to messages
这就是 agent loop 的全部。Model 决定何时调用工具,我们执行工具。
from agent_core import AgentConfig, ToolDispatcher, AgentLoop
from agent_core.tools.bash import run_bash
from agent_core.tools.filesystem import run_read, run_write, run_edit
config = AgentConfig(
model="claude-sonnet-4-20250514",
system_prompt="You are a coding agent at /path/to/project.",
)
dispatcher = ToolDispatcher()
dispatcher.register("bash", run_bash)
dispatcher.register("read_file", run_read)
dispatcher.register("write_file", run_write)
dispatcher.register("edit_file", run_edit)
loop = AgentLoop(config, dispatcher)
messages = [{"role": "user", "content": "帮我添加用户认证功能"}]
response = loop.run(messages)
print(response.text) # 最终文本回复
print(response.stop_reason) # 为什么停止
print(response.tool_results) # 所有工具执行结果
单轮对话不需要手动创建 loop:
from agent_core import chat
result = chat(
system_prompt="You are a helpful coding assistant.",
user_message="What files were modified today?",
model="claude-sonnet-4-20250514",
tools={
"bash": run_bash,
"read_file": run_read,
}
)
print(result.text)
使用:
tool_results 做日志/分析不需要:
client.messages.create()| 方法 | 作用 |
|---|---|
loop.run(messages) | 执行完整循环,返回 AgentResponse |
AgentResponse.text | LLM 最终文本回复 |
AgentResponse.stop_reason | 停止原因(tool_use/end_turn/max_tokens) |
AgentResponse.tool_results | 所有工具执行结果列表 |
AgentResponse.raw | 原始 LLM 响应对象 |
| 值 | 含义 | 我们做什么 |
|---|---|---|
tool_use | LLM 调用了工具 | 继续循环 |
end_turn | LLM 直接回复用户 | 返回 text |
max_tokens | 达到 token 上限 | 返回已收集结果 |