安装
使用您的AGENTEYE_TOKEN 从 GitHub Releases 下载 wheel 包。如果您还没有 Token,请参阅 GitHub Token 设置 了解设置步骤和所需权限。
使用 gh CLI + pip:
gh CLI + uv:
gh CLI):
快速开始
configure()
event.* 调用之前调用一次。可以省略;默认配置开箱即用。所有参数均为仅限关键字参数,请按上方示例以命名方式传入。
当 base_dir 为 None(默认值)时,SDK 会优先读取 $AGENTEYE_HOME(若已设置),否则回退到 ~/.agenteye。此行为与采集器自身的路径解析逻辑一致,因此只需配置一个 AGENTEYE_HOME 环境变量,即可同时为 SDK 和采集器指定共享事件缓冲目录,这在 sidecar / 单 Pod 部署场景中尤为重要——两个进程必须使用相同的缓冲路径。
环境
为每个事件打上部署环境标签(如production、staging、qa、canary 等)。只需设置一次,SDK 会自动将其附加到每个事件上。
方式一:通过 configure() 设置:
configure(environment=...) 优先于环境变量。若两者均未设置,则默认为 "dev"。
环境值在仪表盘中作为一级筛选条件显示,并在服务器端以索引列形式存储,以支持快速查询。
限制: 环境值不得包含字面逗号 ,。仪表盘筛选器在传输时使用逗号分隔的多选格式(?environment=prod,staging),因此名为 prod,blue 的环境值会被拆分为两个独立值。包含逗号的环境值在数据摄入时将被拒绝。
事件参考
所有事件方法均需要以下两个字段:| 字段 | 类型 | 说明 |
|---|---|---|
session_id | str | 标识顶层 Agent 运行实例 |
agent_id | str | 标识会话中发出事件的具体 Agent |
**kwargs 用于自定义元数据(参见自定义字段)。
event.agent_start()
Agent 开始工作时触发。
event.agent_end()
Agent 完成工作时触发。
event.tool_use()
Agent 调用工具时触发。与 tool_result 配对使用;SDK 会自动计算 duration_ms。
event.tool_result()
工具返回结果时触发。通过 tool_call_id 与 tool_use 关联。
event.model_request()
向 LLM 发送提示词之前触发。
messages 条目的 content 字段支持普通字符串或 Anthropic 风格的内容块列表。采样参数(temperature、max_tokens 等)可作为额外的 kwargs 传入。
event.model_response()
LLM 返回响应时触发。
content 支持普通字符串(通用提供商)或 Anthropic 风格内容块列表。工具调用以 {"type": "tool_use", ...} 块的形式嵌入在 content 中,不单独设置 tool_calls 字段。
event.hook_triggered()
Hook 触发时触发。与 hook_completed 配对使用;SDK 会自动计算 duration_ms。
event.hook_completed()
Hook 执行完成时触发。通过 hook_id 与 hook_triggered 关联。
event.error()
发生未处理错误时触发。
人机协作事件
人机协作事件让您能够监控人员介入 Agent 执行流程的关键时刻(等待审批、提供输入、暂停或停止 Agent)。通过这些事件,您可以衡量人类响应所需的时长(SDK 会自动为配对事件计算duration_ms),审计是谁暂停或中断了 Agent,并构建在仪表盘中呈现的审批与监督工作流。
event.human_wait()
Agent 暂停执行并等待人工输入时触发。与 human_input 配对使用;SDK 会自动计算 duration_ms(即人类响应所用时长)。
event.human_input()
人类提供输入且 Agent 恢复执行时触发。通过 input_id 与 human_wait 关联。duration_ms 由 SDK 自动计算,调用方不得手动传入。
event.human_pause()
人类主动暂停 Agent 时触发(例如通过仪表盘控件)。Agent 被挂起但未终止。
event.human_interrupt()
人类在 Agent 执行过程中主动停止 Agent 时触发。与 human_pause 不同,此操作会终止 Agent 的工作,而非挂起。
自定义字段
任何额外的关键字参数都会附加到事件的标准字段之后:timestamp、type 和 environment 为保留字段,若将其作为自定义字段传入,将抛出 ValueError(Reserved field names cannot be used as custom fields: [...])。session_id 和 agent_id 是每个事件方法的必填参数,不能二次传入;若重复传入,Python 会抛出 TypeError。请通过 configure(environment=...) 或 AGENTEYE_ENVIRONMENT 环境变量来设置环境值。
事件写入机制
事件在进程内缓冲,并每隔flush_interval 秒(默认 500 毫秒)刷新到磁盘。每次刷新写入一个 JSONL 文件:

