用途:这是一套面向 PostHog AI 智能体(hogai)的模式(Agent Mode)开发指南。模式用于管理智能体上下文,并按 PostHog 产品(如 Product analytics)、产品区域(如 SQL)或专用 agent(如 Instrumentation agent)注入工具、提示词及模式相关行为。智能体可通过 switch_mode 工具自行切换模式,切换时可能改变工具、提示词与 executables,同时保留当前上下文。部分旧工具是上下文相关的,只在前端特定页面注入;模式则始终在模式上下文中携带工具。
主要流程:
- 确定模式名:查看 ee/hogai/core/agent_modes/presets 目录,确认是否已有符合意图的模式。
- 可选地新增模式 schema:在 frontend/src/queries/schema/schema-assistant-messages.ts 中添加新的 AgentMode,并重新生成 schema,命令为 hogli build:schema,或 pnpm run schema:build。
- 创建或更新模式脚手架:通常至少包含一个 AgentToolkit(提供该模式专属工具与 todo 工具的 trajectory 示例)和一个 AgentModeDefinition(包含 AgentMode、始终注入上下文的模式描述,以及 toolkit 与 executables 的类)。仅当需要修改提示词、该模式行为或执行循环本身时才创建新的 executables。
- 添加工具:相关工具可能在 ee/hogai/tools 或 products/<product_name>/backend/max_tools。read_data 等工具始终注入上下文,其余工具应专属该模式。添加前需判断工具依赖(如 experiment 依赖 feature flag 创建);若存在依赖需与用户确认是否合并模式,否则应添加说明模式切换与工具选择的 trajectory 示例。还需验证工具是否 backend-first,若工具直接改前端而未回传上下文,应建议改为 backend-first。
- 检查默认 toolkit:若模式含新的 Django 模型,需确认 read_data、search、list_data 能否检索这些模型,否则使用或实现 ee/hogai/context/... 中的 context provider。
- 编写 JTBD 风格的 trajectory 示例:更新 AgentToolkit,参考 Product analytics preset。
- 实现前端:更新 max-constants.tsx 加入新工具与模式选择器,必要时新建 UI 组件展示工具输出(例如 Error tracking 工具改为输出 issue 后,智能体已有上下文但用户仍需可读展示)。
- 添加 feature flag:所有新模式必须走 feature flag,例如在 mode_registry 中按 has_error_tracking_mode_feature_flag 注册;迁移中的旧工具在 flag 激活时不应可用,新工具仅在 flag 激活时可用。
- 实现与更新测试:测试新工具、preset、executables,可选实现 evals。
限制与说明:资料未提供具体价格、收费或效果数据;模式命名须按产品、产品区域或 agent 限定范围;新增模式必须 feature flag 控制。