Skip to content

Recipes — 高频任务,一键到答案

每条 recipe 都是 你实际想做的事,映射到对应的章节。如果你的任务不在这里,完整目录 里大概率有。

我想……

…把自己的业务 API 包成一个 Agent 工具

5.1 自定义工具Tool 子类的 name / description / parameters / execute,文末有完整生产模板。要点:返回 JSON 字符串、有副作用的设 requires_confirmation=True、description 按 LLM 第一视角写。

…不知道该用 Tool、Skill、MCP、Permission 还是 Hook

第 5 部分 · 扩展 Agent 行为 — 先用“按任务阅读”表判断:业务 API 用 Tool,LLM 侧操作规范用 Skill / AGENTAO.md,现成外部服务用 MCP,安全边界用 Permission,生命周期拦截 / 审计 / 续轮用 Hook。

…在生命周期点审计、拦截或给 Stop 续轮

5.7 插件 Hookshooks.json 规则、8 个事件、command vs prompt、StopHookResultmatched_rule_count == 0 静默规则。事件 payload 参考见 4.2 AgentEvent

…把 Agent 输出流式推到浏览器

4.4 构建流式 UI — SSE 和 WebSocket 双模板、用 loop.call_soon_threadsafe 跨线程桥接、keep-alive 帧。配合 2.7 FastAPI / Flask 拿到可直接复制的生产 endpoint。

…加一个能中途取消 chat() 的"停止"按钮

2.6 取消与超时CancellationToken、客户端断连事件接线、asyncio.wait_for 的硬墙时钟。chat() 取消时返回 "[Cancelled: <reason>]"——不要 try 异常。

…在 Web UI 里弹工具确认对话框

4.5 工具确认 UI — 用 asyncio.run_coroutine_threadsafe 同步→异步桥接、Web 弹窗模式、"本次允许 / 永久允许"的交互。配合 5.4 权限引擎,让 90% 的安全调用根本不走弹窗。

…按 (tenant_id, session_id) 池化 Agent 实例

2.3 生命周期管理 给锁 + 线程模式;6.7 资源治理与并发 给 TTL + LRU 淘汰;7.1 SaaS 内置助手 给一个整合的 FastAPI 完整示例。

…让对话跨 Pod 重启不丢

2.4 会话状态与持久化 — 实例上承载了什么、哪些要序列化(agent.messages)、用 add_message(role, content) 回放后再 chat()

…运行时切模型(便宜 / 贵的路由)

2.5 运行时切换 LLMset_provider / set_model、便宜→贵 / 主+备 / A/B 三种路由模式。

…给每个租户独立的凭据或 MCP token

2.2 构造器 · extra_mcp_servers 做会话级 MCP 注入;6.4 多租户与文件系统 给租户隔离规则;7.1 SaaS 内置助手 把这些串起来。

…阻断 SSRF 或锁紧 web_fetch

6.3 网络与 SSRF 防护 — 默认黑名单覆盖范围、.github.com(后缀)vs github.com(精确)规则、禁重定向模式。不要禁用默认黑名单——只能扩。

…用 Node / Go / Rust / IDE 驱动 Agentao

第 3 部分 · ACP 协议 — 先看 3.1 60 秒快速尝鲜,再看 3.3 宿主作为 ACP Client 的典型架构(含 TS + Go 骨架)。

…让记忆按租户严格隔离

5.5 记忆系统 讲作用域(项目 + 用户)和优雅降级;6.4 多租户与文件系统 讲跨租户陷阱。要么禁用用户作用域,要么按 tenant_id+user_id 索引条目。

…用 Docker 部署但不让 runtime 镜像变胖

6.8 容器化、灰度与回滚 — 多阶段 Dockerfile(用 uv 构建、runtime 只装 venv)、StatefulSet + PVC + sessionAffinity 做粘性会话、按维度灰度。

…让我的宿主代码跨 Agentao 版本不断(审计流水线 / 可观测)

4.7 嵌入式 Harness 合约 —— agentao.host稳定的、附 schema 快照的宿主 API。审计 / SIEM / 计费用 agent.events()(异步 pull 迭代器),策略快照 UI 用 agent.active_permissions()不要在生产代码里直接用内部 AgentEvent

两个可直接跑的入口:examples/host_events.py(~50 行,打到 stdout)和 examples/host_audit_pipeline.py(完整 SQLite 审计循环)。

…在 Jupyter Notebook 里嵌入 Agentao

examples/jupyter-session/ —— 每个 kernel 一个 Agentaoagent.events() 驱动 IPython.display。带一个能直接打开的 session.ipynb 和过测试的烟雾套件。配 1.3 两种集成模式 看进程内 SDK 背景。

…做一个 Slack 或微信机器人

examples/slack-bot/slack-bolt app_mention → 一轮,频道级权限。examples/wechat-bot/ 是微信轮询守护进程版本,联系人级权限。两个都是最小形态(离线烟雾测试,不要 API key)。

…拿到密闭可用的 pytest fixture

examples/pytest-fixture/ 提供可直接 drop-in 的 agent / agent_with_reply / fake_llm_client fixture。密闭、不需要 OPENAI_API_KEY。配 附录 F.8 看断言模式。

…把 Agentao 的 IO 面(FS / shell / MCP / memory)替换成自己的后端

2.2 能力协议 列了四个 host→Agentao 注入槽(filesystem / shell / mcp_registry / memory_manager)以及每个的绑定时机。TL;DR:从 agentao.host.protocols 导入 Protocol,把实现传给 Agentao(...) 构造器——传 None 是回退到本地默认,不是禁用。可运行端到端形态:examples/protocol-injection/ 用四个小适配器替换全部槽位,并用 6 条 smoke 测试断言每个槽位被实际调用(无需 API key)。

没找到你的任务?

  • 所有可跑的 examples —— examples/README.md 列出每个样例的技术栈、运行命令、演示内容。
  • 按角色:看首页的"按角色选起点"表。
  • 搜索:VitePress 内置搜索(右上角)支持本地 + 全文。
  • 卡住了附录 F · FAQ 与排错 按症状索引。