跳转到主要内容
AgentEye Python SDK 为您提供对 Agent 行为的完整可见性(包括每次 Agent 运行、工具调用、模型请求、Hook 以及人工干预),帮助您调试、审计和评估它们。SDK 通过将结构化事件写入本地 JSONL 文件来对 Agent 代码进行埋点;采集器守护进程会自动拾取这些文件并将其上报至平台。

安装

使用您的 AGENTEYE_TOKEN 从 GitHub Releases 下载 wheel 包。如果您还没有 Token,请参阅 GitHub Token 设置 了解设置步骤和所需权限。 使用 gh CLI + pip:
使用 gh CLI + uv:
使用 curl(无需 gh CLI):

快速开始


configure()

请在任何 event.* 调用之前调用一次。可以省略;默认配置开箱即用。所有参数均为仅限关键字参数,请按上方示例以命名方式传入。 base_dirNone(默认值)时,SDK 会优先读取 $AGENTEYE_HOME(若已设置),否则回退到 ~/.agenteye。此行为与采集器自身的路径解析逻辑一致,因此只需配置一个 AGENTEYE_HOME 环境变量,即可同时为 SDK 和采集器指定共享事件缓冲目录,这在 sidecar / 单 Pod 部署场景中尤为重要——两个进程必须使用相同的缓冲路径。

环境

为每个事件打上部署环境标签(如 productionstagingqacanary 等)。只需设置一次,SDK 会自动将其附加到每个事件上。 方式一:通过 configure() 设置:
方式二:通过环境变量设置:
优先级: configure(environment=...) 优先于环境变量。若两者均未设置,则默认为 "dev" 环境值在仪表盘中作为一级筛选条件显示,并在服务器端以索引列形式存储,以支持快速查询。 限制: 环境值不得包含字面逗号 ,。仪表盘筛选器在传输时使用逗号分隔的多选格式(?environment=prod,staging),因此名为 prod,blue 的环境值会被拆分为两个独立值。包含逗号的环境值在数据摄入时将被拒绝。

事件参考

所有事件方法均需要以下两个字段:
字段类型说明
session_idstr标识顶层 Agent 运行实例
agent_idstr标识会话中发出事件的具体 Agent
所有方法还接受任意 **kwargs 用于自定义元数据(参见自定义字段)。

event.agent_start()

Agent 开始工作时触发。

event.agent_end()

Agent 完成工作时触发。

event.tool_use()

Agent 调用工具时触发。与 tool_result 配对使用;SDK 会自动计算 duration_ms

event.tool_result()

工具返回结果时触发。通过 tool_call_idtool_use 关联。

event.model_request()

向 LLM 发送提示词之前触发。
messages 条目的 content 字段支持普通字符串或 Anthropic 风格的内容块列表。采样参数(temperaturemax_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_idhook_triggered 关联。

event.error()

发生未处理错误时触发。

人机协作事件

人机协作事件让您能够监控人员介入 Agent 执行流程的关键时刻(等待审批、提供输入、暂停或停止 Agent)。通过这些事件,您可以衡量人类响应所需的时长(SDK 会自动为配对事件计算 duration_ms),审计是谁暂停或中断了 Agent,并构建在仪表盘中呈现的审批与监督工作流。

event.human_wait()

Agent 暂停执行并等待人工输入时触发。与 human_input 配对使用;SDK 会自动计算 duration_ms(即人类响应所用时长)。

event.human_input()

人类提供输入且 Agent 恢复执行时触发。通过 input_idhuman_wait 关联。duration_ms 由 SDK 自动计算,调用方不得手动传入。

event.human_pause()

人类主动暂停 Agent 时触发(例如通过仪表盘控件)。Agent 被挂起但未终止。

event.human_interrupt()

人类在 Agent 执行过程中主动停止 Agent 时触发。与 human_pause 不同,此操作会终止 Agent 的工作,而非挂起。

自定义字段

任何额外的关键字参数都会附加到事件的标准字段之后:
timestamptypeenvironment 为保留字段,若将其作为自定义字段传入,将抛出 ValueErrorReserved field names cannot be used as custom fields: [...])。session_idagent_id 是每个事件方法的必填参数,不能二次传入;若重复传入,Python 会抛出 TypeError。请通过 configure(environment=...)AGENTEYE_ENVIRONMENT 环境变量来设置环境值。

事件写入机制

事件在进程内缓冲,并每隔 flush_interval 秒(默认 500 毫秒)刷新到磁盘。每次刷新写入一个 JSONL 文件:
采集器会监视该目录并自动上传文件。您无需手动管理这些文件。