第11课:综合实战:迷你任务助手
进度 0/12
🚀
综合实战:迷你任务助手
四大件合体,造出你的第一个完整运行时!
📖知识引入
🧩四合一架构
对话循环+工具调用+上下文管理+记忆持久化,前面造的零件全部上机
🗂️项目分模块
main.py管循环、tools.py管工具、memory.py管记忆——一个文件一件事
🧰为任务配工具
任务助手配三件套:加待办、查待办、完成待办,接口越简单越稳
🛡️稳字当头
工具执行包上try/except,出错把报错回传模型,它会自己想办法
💡
先让一个工具跑通整条链路,再逐个加新工具——小步快跑,别想一口吃成架构师
🔍迷你任务助手的骨架
# main.py —— 四大件合体的最小完整结构
from tools import TOOLS, run_tool # ② 工具层
from memory import load_memory, save_memory # ④ 记忆层
messages = [{"role": "user", "content": input("你:")}]
system = f"你是任务助手。当前待办:{load_memory()}"
for step in range(15): # ① 循环层(含步数保险)
resp = client.messages.create(
model="claude-sonnet-4-5", max_tokens=1024,
system=system, messages=messages, tools=TOOLS,
)
messages.append({"role": "assistant", "content": resp.content})
if resp.stop_reason == "end_turn":
print("助手:", resp.content[0].text)
break
for block in resp.content: # 执行工具并回传结果
if block.type == "tool_use":
try:
result = run_tool(block.name, block.input)
except Exception as e:
result = f"工具出错:{e}" # 把错误也告诉模型
messages.append({"role": "user", "content": [{
"type": "tool_result",
"tool_use_id": block.id, "content": str(result)}]})
messages = trim_messages(messages, keep_rounds=6) # ③ 上下文层循环、工具、上下文、记忆四大件各就各位——这就是一个真正的Harness
🎯小测验
第1题:迷你任务助手的四个核心模块对应本课哪四讲?
第2题:工具执行套上try/except的好处是?
第3题:项目按「一个文件一件事」拆分的目的是?
📝本课知识点
- ✓四大件合体才是Harness
- ✓一个文件一件事
- ✓报错回传模型,让它自救
第11课完成!继续探索下一课吧 🚀
