agent-operations 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. agent_operations-0.1.0/LICENSE +21 -0
  2. agent_operations-0.1.0/PKG-INFO +264 -0
  3. agent_operations-0.1.0/README.md +239 -0
  4. agent_operations-0.1.0/agent_operations.egg-info/PKG-INFO +264 -0
  5. agent_operations-0.1.0/agent_operations.egg-info/SOURCES.txt +32 -0
  6. agent_operations-0.1.0/agent_operations.egg-info/dependency_links.txt +1 -0
  7. agent_operations-0.1.0/agent_operations.egg-info/entry_points.txt +3 -0
  8. agent_operations-0.1.0/agent_operations.egg-info/requires.txt +2 -0
  9. agent_operations-0.1.0/agent_operations.egg-info/top_level.txt +1 -0
  10. agent_operations-0.1.0/agentops/__init__.py +26 -0
  11. agent_operations-0.1.0/agentops/alerts.py +194 -0
  12. agent_operations-0.1.0/agentops/auth.py +113 -0
  13. agent_operations-0.1.0/agentops/db.py +154 -0
  14. agent_operations-0.1.0/agentops/events.py +68 -0
  15. agent_operations-0.1.0/agentops/http.py +325 -0
  16. agent_operations-0.1.0/agentops/ingest.py +331 -0
  17. agent_operations-0.1.0/agentops/metrics.py +118 -0
  18. agent_operations-0.1.0/agentops/pricing.py +123 -0
  19. agent_operations-0.1.0/agentops/query.py +234 -0
  20. agent_operations-0.1.0/agentops/redact.py +93 -0
  21. agent_operations-0.1.0/agentops/trace.py +197 -0
  22. agent_operations-0.1.0/pyproject.toml +40 -0
  23. agent_operations-0.1.0/setup.cfg +4 -0
  24. agent_operations-0.1.0/tests/test_alerts.py +101 -0
  25. agent_operations-0.1.0/tests/test_auth.py +128 -0
  26. agent_operations-0.1.0/tests/test_db.py +90 -0
  27. agent_operations-0.1.0/tests/test_events.py +61 -0
  28. agent_operations-0.1.0/tests/test_http.py +97 -0
  29. agent_operations-0.1.0/tests/test_ingest.py +270 -0
  30. agent_operations-0.1.0/tests/test_pricing.py +101 -0
  31. agent_operations-0.1.0/tests/test_quality.py +88 -0
  32. agent_operations-0.1.0/tests/test_query.py +110 -0
  33. agent_operations-0.1.0/tests/test_redact.py +94 -0
  34. agent_operations-0.1.0/tests/test_trace.py +84 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 WenSongWang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,264 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-operations
3
+ Version: 0.1.0
4
+ Summary: Lightweight self-hosted Agent Operations (AgentOps / LLMOps) toolkit
5
+ Author: WenSongWang
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/WenSongWang/agent-operations
8
+ Project-URL: Repository, https://github.com/WenSongWang/agent-operations
9
+ Project-URL: Issues, https://github.com/WenSongWang/agent-operations/issues
10
+ Keywords: agentops,llmops,observability,tracing,sqlite
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Topic :: Software Development :: Libraries
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Provides-Extra: dev
24
+ Dynamic: license-file
25
+
26
+ # agent-operations
27
+
28
+ Open-source **Agent Operations** (AgentOps / LLMOps) toolkit — trace runs, track latency / tokens / cost, and debug tool failures.
29
+
30
+ Lightweight and self-hostable. Default storage is one SQLite file. No ClickHouse required.
31
+
32
+ | 项 | 值 |
33
+ | :--- | :--- |
34
+ | Python | ≥ 3.11 |
35
+ | Install | `pip install -e .`(当前建议从源码安装) |
36
+ | Default UI | http://127.0.0.1:8787 |
37
+ | Default DB | `./data/agentops.db` |
38
+
39
+ ## 5 分钟上手
40
+
41
+ ### 1. 安装
42
+
43
+ ```powershell
44
+ git clone https://github.com/WenSongWang/agent-operations.git
45
+ cd agent-operations
46
+ python -m pip install -e .
47
+ ```
48
+
49
+ 可选:跑测试
50
+
51
+ ```powershell
52
+ python -m unittest discover -s tests -v
53
+ ```
54
+
55
+ ### 2. 用 Python 写入一条 run
56
+
57
+ ```python
58
+ from agentops import connect, ingest_run
59
+
60
+ conn = connect("./data/agentops.db")
61
+ ingest_run(conn, {
62
+ "id": "run-001",
63
+ "project": "demo",
64
+ "agent": "assistant",
65
+ "environment": "dev", # dev | test | uat | prd
66
+ "name": "answer-question",
67
+ "status": "ok", # running | ok | error | timeout | cancelled
68
+ "started_at": "2026-10-24T10:00:00+00:00",
69
+ "ended_at": "2026-10-24T10:00:02+00:00",
70
+ "provider": "openai",
71
+ "model": "gpt-4o-mini",
72
+ "input_tokens": 100,
73
+ "output_tokens": 50,
74
+ # cost_usd 可省略:会按内置单价估算
75
+ "steps": [
76
+ {
77
+ "seq": 1,
78
+ "kind": "llm", # llm | tool | agent | human
79
+ "name": "gpt-4o-mini",
80
+ "status": "ok",
81
+ "started_at": "2026-10-24T10:00:00+00:00",
82
+ "ended_at": "2026-10-24T10:00:02+00:00",
83
+ "input_tokens": 100,
84
+ "output_tokens": 50,
85
+ }
86
+ ],
87
+ })
88
+ conn.close()
89
+ ```
90
+
91
+ 或直接跑示例:
92
+
93
+ ```powershell
94
+ python examples/quickstart.py
95
+ python examples/openai_wrap.py
96
+ ```
97
+
98
+ ### 2b. 更省事:用 `TracedRun`(推荐)
99
+
100
+ 不用手写 `running` / 终态时间戳;OpenAI 响应可直接抽 token:
101
+
102
+ ```python
103
+ from agentops import connect, TracedRun
104
+
105
+ conn = connect("./data/agentops.db")
106
+ with TracedRun(
107
+ conn,
108
+ project="demo",
109
+ agent="assistant",
110
+ environment="dev",
111
+ name="chat",
112
+ task_input="Say hi",
113
+ ) as tr:
114
+ # resp = client.chat.completions.create(...)
115
+ # tr.record_openai(resp, output_text=resp.choices[0].message.content)
116
+ tr.finish(task_output="hi")
117
+ conn.close()
118
+ ```
119
+
120
+ 异常退出时会自动记成 `status=error`。完整示例见 `examples/openai_wrap.py`。
121
+
122
+ ### 3. 启动本机服务与页面
123
+
124
+ ```powershell
125
+ agentops-http
126
+ # 等价:python -m agentops.http
127
+ ```
128
+
129
+ 浏览器打开 http://127.0.0.1:8787
130
+
131
+ ### 4. 用 HTTP / curl 上报
132
+
133
+ ```powershell
134
+ curl -s http://127.0.0.1:8787/api/runs -Method POST -ContentType "application/json" -Body @'
135
+ {
136
+ "id": "run-002",
137
+ "project": "demo",
138
+ "agent": "assistant",
139
+ "environment": "dev",
140
+ "name": "via-http",
141
+ "status": "ok",
142
+ "started_at": "2026-10-24T11:00:00+00:00",
143
+ "ended_at": "2026-10-24T11:00:01+00:00",
144
+ "latency_ms": 1000,
145
+ "input_tokens": 10,
146
+ "output_tokens": 5
147
+ }
148
+ '@
149
+ ```
150
+
151
+ 查询:
152
+
153
+ ```powershell
154
+ curl -s "http://127.0.0.1:8787/api/runs?project=demo"
155
+ curl -s "http://127.0.0.1:8787/api/runs/summary?project=demo"
156
+ curl -s "http://127.0.0.1:8787/api/failures?project=demo"
157
+ curl -s "http://127.0.0.1:8787/api/runs/run-002"
158
+ ```
159
+
160
+ ## API 一览
161
+
162
+ | 方法 | 路径 | 说明 |
163
+ | :--- | :--- | :--- |
164
+ | `GET` | `/` | 只读调试页 |
165
+ | `POST` | `/api/runs` | 写入 / 终态更新一条 run |
166
+ | `GET` | `/api/runs` | 列表(可按 project/agent/environment/status/时间筛选) |
167
+ | `GET` | `/api/runs/summary` | 次数、成功率、token/费用、p50/p95/p99 |
168
+ | `GET` | `/api/runs/{id}` | 单条详情(含 steps) |
169
+ | `GET` | `/api/failures` | 工具失败归并 |
170
+
171
+ ### 必填字段(run)
172
+
173
+ `id`, `project`, `agent`, `environment`, `name`, `status`, `started_at`
174
+
175
+ 终态(`ok` / `error` / `timeout` / `cancelled`)还要 `ended_at`。
176
+ `status=running` 时可省略 `ended_at`;同一 `id` 再报终态会覆盖更新。
177
+
178
+ ### 常用可选字段
179
+
180
+ | 字段 | 说明 |
181
+ | :--- | :--- |
182
+ | `latency_ms` / `ttft_ms` | 耗时;不传则尽量从时间戳 / steps 推算 |
183
+ | `input_tokens` / `output_tokens` / `cached_tokens` / `reasoning_tokens` | token;未上报保持空,不是 0 |
184
+ | `cost_usd` | 费用;不传则按 `provider`+`model` 估算 |
185
+ | `provider` / `model` | 厂商与模型 |
186
+ | `steps` | 步骤列表(排错用) |
187
+ | `quality_score` | 0–1 |
188
+ | `thumbs` | `up` / `down` |
189
+ | `prompt_version` / `template_version` | 提示词 / 模板版本 |
190
+ | `tags` | JSON,如 `{"end_user_id":"..."}` |
191
+ | `extra` | 备用 JSON |
192
+
193
+ 步骤必填:`seq`, `kind`, `name`, `status`。
194
+
195
+ ## 可选能力
196
+
197
+ ### 脱敏
198
+
199
+ ```powershell
200
+ $env:AGENTOPS_REDACT = "hash" # off | hash | drop
201
+ ```
202
+
203
+ 作用于 `task_input` / `task_output`、步骤 `input` / `output` / `traceback`、`tags.end_user_id`。
204
+
205
+ ### 价目表
206
+
207
+ 未传 `cost_usd` 时用内置单价估算。自定义 JSON(键为 `provider/model`):
208
+
209
+ ```powershell
210
+ $env:AGENTOPS_PRICING_PATH = ".\pricing.json"
211
+ ```
212
+
213
+ ### 告警(适合 cron)
214
+
215
+ ```powershell
216
+ $env:AGENTOPS_ALERT_WEBHOOK = "https://example.com/hook"
217
+ $env:AGENTOPS_ALERT_FAILURE_RATE = "0.2"
218
+ $env:AGENTOPS_ALERT_P95_MS = "3000"
219
+ $env:AGENTOPS_ALERT_COST_USD = "10"
220
+ agentops-alerts --db .\data\agentops.db
221
+ ```
222
+
223
+ 有告警时退出码 `2`。`--dry-run` 只打印不 POST。
224
+
225
+ ### 事件 outbox(Kafka 预留)
226
+
227
+ ```powershell
228
+ $env:AGENTOPS_EVENT_OUTBOX = ".\data\events.jsonl"
229
+ ```
230
+
231
+ 每次成功写入追加一行 `agentops.run` v1 事件(`create` / `finalize`)。
232
+
233
+ ### API Key(外网绑定前必配)
234
+
235
+ ```powershell
236
+ $env:AGENTOPS_API_KEYS = '{"dev-key":{"projects":["demo"]},"admin":{"projects":["*"]}}'
237
+ agentops-http --host 0.0.0.0 --port 8787
238
+ ```
239
+
240
+ 请求头:`Authorization: Bearer <key>` 或 `X-API-Key: <key>`。
241
+ 未配置密钥时:仅建议本机 `127.0.0.1`,接口开放。非 loopback 绑定必须配置密钥。
242
+
243
+ ## 限制(请先读)
244
+
245
+ | 限制 | 说明 |
246
+ | :--- | :--- |
247
+ | Alpha | 接口可能继续演进;生产使用请自行评估 |
248
+ | SQLite | 默认单机文件库;多机共享库尚未提供(Postgres 在路线图) |
249
+ | 自报数据 | 延迟 / token / 费用依赖调用方或估算,不是云厂商账单 |
250
+ | 非全链路 APM | 聚焦 agent run + steps,不是通用分布式 tracing |
251
+ | Kafka | 目前只有 JSONL outbox,没有内置 broker |
252
+ | 页面 | 只读调试页;配置了 API Key 后,浏览器调 API 需自行带密钥 |
253
+ | 安装渠道 | 当前以源码 `pip install -e .` 为主;版本见 tag `v0.1.0` / [CHANGELOG](./CHANGELOG.md),暂未上传 PyPI |
254
+
255
+ 更细的后续项见 [ROADMAP.md](./ROADMAP.md)。
256
+
257
+ ## 开发
258
+
259
+ ```powershell
260
+ python -m pip install -e .
261
+ python -m unittest discover -s tests -v
262
+ ```
263
+
264
+ 库入口常用符号:`connect`, `ingest_run`, `list_runs`, `summarize_runs`, `get_run`, `list_tool_failures`。
@@ -0,0 +1,239 @@
1
+ # agent-operations
2
+
3
+ Open-source **Agent Operations** (AgentOps / LLMOps) toolkit — trace runs, track latency / tokens / cost, and debug tool failures.
4
+
5
+ Lightweight and self-hostable. Default storage is one SQLite file. No ClickHouse required.
6
+
7
+ | 项 | 值 |
8
+ | :--- | :--- |
9
+ | Python | ≥ 3.11 |
10
+ | Install | `pip install -e .`(当前建议从源码安装) |
11
+ | Default UI | http://127.0.0.1:8787 |
12
+ | Default DB | `./data/agentops.db` |
13
+
14
+ ## 5 分钟上手
15
+
16
+ ### 1. 安装
17
+
18
+ ```powershell
19
+ git clone https://github.com/WenSongWang/agent-operations.git
20
+ cd agent-operations
21
+ python -m pip install -e .
22
+ ```
23
+
24
+ 可选:跑测试
25
+
26
+ ```powershell
27
+ python -m unittest discover -s tests -v
28
+ ```
29
+
30
+ ### 2. 用 Python 写入一条 run
31
+
32
+ ```python
33
+ from agentops import connect, ingest_run
34
+
35
+ conn = connect("./data/agentops.db")
36
+ ingest_run(conn, {
37
+ "id": "run-001",
38
+ "project": "demo",
39
+ "agent": "assistant",
40
+ "environment": "dev", # dev | test | uat | prd
41
+ "name": "answer-question",
42
+ "status": "ok", # running | ok | error | timeout | cancelled
43
+ "started_at": "2026-10-24T10:00:00+00:00",
44
+ "ended_at": "2026-10-24T10:00:02+00:00",
45
+ "provider": "openai",
46
+ "model": "gpt-4o-mini",
47
+ "input_tokens": 100,
48
+ "output_tokens": 50,
49
+ # cost_usd 可省略:会按内置单价估算
50
+ "steps": [
51
+ {
52
+ "seq": 1,
53
+ "kind": "llm", # llm | tool | agent | human
54
+ "name": "gpt-4o-mini",
55
+ "status": "ok",
56
+ "started_at": "2026-10-24T10:00:00+00:00",
57
+ "ended_at": "2026-10-24T10:00:02+00:00",
58
+ "input_tokens": 100,
59
+ "output_tokens": 50,
60
+ }
61
+ ],
62
+ })
63
+ conn.close()
64
+ ```
65
+
66
+ 或直接跑示例:
67
+
68
+ ```powershell
69
+ python examples/quickstart.py
70
+ python examples/openai_wrap.py
71
+ ```
72
+
73
+ ### 2b. 更省事:用 `TracedRun`(推荐)
74
+
75
+ 不用手写 `running` / 终态时间戳;OpenAI 响应可直接抽 token:
76
+
77
+ ```python
78
+ from agentops import connect, TracedRun
79
+
80
+ conn = connect("./data/agentops.db")
81
+ with TracedRun(
82
+ conn,
83
+ project="demo",
84
+ agent="assistant",
85
+ environment="dev",
86
+ name="chat",
87
+ task_input="Say hi",
88
+ ) as tr:
89
+ # resp = client.chat.completions.create(...)
90
+ # tr.record_openai(resp, output_text=resp.choices[0].message.content)
91
+ tr.finish(task_output="hi")
92
+ conn.close()
93
+ ```
94
+
95
+ 异常退出时会自动记成 `status=error`。完整示例见 `examples/openai_wrap.py`。
96
+
97
+ ### 3. 启动本机服务与页面
98
+
99
+ ```powershell
100
+ agentops-http
101
+ # 等价:python -m agentops.http
102
+ ```
103
+
104
+ 浏览器打开 http://127.0.0.1:8787
105
+
106
+ ### 4. 用 HTTP / curl 上报
107
+
108
+ ```powershell
109
+ curl -s http://127.0.0.1:8787/api/runs -Method POST -ContentType "application/json" -Body @'
110
+ {
111
+ "id": "run-002",
112
+ "project": "demo",
113
+ "agent": "assistant",
114
+ "environment": "dev",
115
+ "name": "via-http",
116
+ "status": "ok",
117
+ "started_at": "2026-10-24T11:00:00+00:00",
118
+ "ended_at": "2026-10-24T11:00:01+00:00",
119
+ "latency_ms": 1000,
120
+ "input_tokens": 10,
121
+ "output_tokens": 5
122
+ }
123
+ '@
124
+ ```
125
+
126
+ 查询:
127
+
128
+ ```powershell
129
+ curl -s "http://127.0.0.1:8787/api/runs?project=demo"
130
+ curl -s "http://127.0.0.1:8787/api/runs/summary?project=demo"
131
+ curl -s "http://127.0.0.1:8787/api/failures?project=demo"
132
+ curl -s "http://127.0.0.1:8787/api/runs/run-002"
133
+ ```
134
+
135
+ ## API 一览
136
+
137
+ | 方法 | 路径 | 说明 |
138
+ | :--- | :--- | :--- |
139
+ | `GET` | `/` | 只读调试页 |
140
+ | `POST` | `/api/runs` | 写入 / 终态更新一条 run |
141
+ | `GET` | `/api/runs` | 列表(可按 project/agent/environment/status/时间筛选) |
142
+ | `GET` | `/api/runs/summary` | 次数、成功率、token/费用、p50/p95/p99 |
143
+ | `GET` | `/api/runs/{id}` | 单条详情(含 steps) |
144
+ | `GET` | `/api/failures` | 工具失败归并 |
145
+
146
+ ### 必填字段(run)
147
+
148
+ `id`, `project`, `agent`, `environment`, `name`, `status`, `started_at`
149
+
150
+ 终态(`ok` / `error` / `timeout` / `cancelled`)还要 `ended_at`。
151
+ `status=running` 时可省略 `ended_at`;同一 `id` 再报终态会覆盖更新。
152
+
153
+ ### 常用可选字段
154
+
155
+ | 字段 | 说明 |
156
+ | :--- | :--- |
157
+ | `latency_ms` / `ttft_ms` | 耗时;不传则尽量从时间戳 / steps 推算 |
158
+ | `input_tokens` / `output_tokens` / `cached_tokens` / `reasoning_tokens` | token;未上报保持空,不是 0 |
159
+ | `cost_usd` | 费用;不传则按 `provider`+`model` 估算 |
160
+ | `provider` / `model` | 厂商与模型 |
161
+ | `steps` | 步骤列表(排错用) |
162
+ | `quality_score` | 0–1 |
163
+ | `thumbs` | `up` / `down` |
164
+ | `prompt_version` / `template_version` | 提示词 / 模板版本 |
165
+ | `tags` | JSON,如 `{"end_user_id":"..."}` |
166
+ | `extra` | 备用 JSON |
167
+
168
+ 步骤必填:`seq`, `kind`, `name`, `status`。
169
+
170
+ ## 可选能力
171
+
172
+ ### 脱敏
173
+
174
+ ```powershell
175
+ $env:AGENTOPS_REDACT = "hash" # off | hash | drop
176
+ ```
177
+
178
+ 作用于 `task_input` / `task_output`、步骤 `input` / `output` / `traceback`、`tags.end_user_id`。
179
+
180
+ ### 价目表
181
+
182
+ 未传 `cost_usd` 时用内置单价估算。自定义 JSON(键为 `provider/model`):
183
+
184
+ ```powershell
185
+ $env:AGENTOPS_PRICING_PATH = ".\pricing.json"
186
+ ```
187
+
188
+ ### 告警(适合 cron)
189
+
190
+ ```powershell
191
+ $env:AGENTOPS_ALERT_WEBHOOK = "https://example.com/hook"
192
+ $env:AGENTOPS_ALERT_FAILURE_RATE = "0.2"
193
+ $env:AGENTOPS_ALERT_P95_MS = "3000"
194
+ $env:AGENTOPS_ALERT_COST_USD = "10"
195
+ agentops-alerts --db .\data\agentops.db
196
+ ```
197
+
198
+ 有告警时退出码 `2`。`--dry-run` 只打印不 POST。
199
+
200
+ ### 事件 outbox(Kafka 预留)
201
+
202
+ ```powershell
203
+ $env:AGENTOPS_EVENT_OUTBOX = ".\data\events.jsonl"
204
+ ```
205
+
206
+ 每次成功写入追加一行 `agentops.run` v1 事件(`create` / `finalize`)。
207
+
208
+ ### API Key(外网绑定前必配)
209
+
210
+ ```powershell
211
+ $env:AGENTOPS_API_KEYS = '{"dev-key":{"projects":["demo"]},"admin":{"projects":["*"]}}'
212
+ agentops-http --host 0.0.0.0 --port 8787
213
+ ```
214
+
215
+ 请求头:`Authorization: Bearer <key>` 或 `X-API-Key: <key>`。
216
+ 未配置密钥时:仅建议本机 `127.0.0.1`,接口开放。非 loopback 绑定必须配置密钥。
217
+
218
+ ## 限制(请先读)
219
+
220
+ | 限制 | 说明 |
221
+ | :--- | :--- |
222
+ | Alpha | 接口可能继续演进;生产使用请自行评估 |
223
+ | SQLite | 默认单机文件库;多机共享库尚未提供(Postgres 在路线图) |
224
+ | 自报数据 | 延迟 / token / 费用依赖调用方或估算,不是云厂商账单 |
225
+ | 非全链路 APM | 聚焦 agent run + steps,不是通用分布式 tracing |
226
+ | Kafka | 目前只有 JSONL outbox,没有内置 broker |
227
+ | 页面 | 只读调试页;配置了 API Key 后,浏览器调 API 需自行带密钥 |
228
+ | 安装渠道 | 当前以源码 `pip install -e .` 为主;版本见 tag `v0.1.0` / [CHANGELOG](./CHANGELOG.md),暂未上传 PyPI |
229
+
230
+ 更细的后续项见 [ROADMAP.md](./ROADMAP.md)。
231
+
232
+ ## 开发
233
+
234
+ ```powershell
235
+ python -m pip install -e .
236
+ python -m unittest discover -s tests -v
237
+ ```
238
+
239
+ 库入口常用符号:`connect`, `ingest_run`, `list_runs`, `summarize_runs`, `get_run`, `list_tool_failures`。