2.4 KiB
2.4 KiB
cli-anything-zhiyi — 自用 REST API Harness 实战
概述
cli-anything-zhiyi 是织忆 (MemoryWeave) 的 Agent-native CLI,一个自用 REST API Harness 的真实案例。源文件见 ~/bin/cli-anything-zhiyi/,已通过 pip install -e 安装。
命令入口:cli-anything-zhiyi
API 服务:zhiyid (localhost:7821, API Key: zhiyi-dev-key-2026)
命令结构
cli-anything-zhiyi
├── health → 5 组件诊断(zhiyid / bge-embed / sidecar / 图谱 / 记忆)
├── search → 语义/关键词/混合搜索(--top-k / --mode / --diversity)
├── stats → 全维度统计(--type memories/graph/cache/metrics)
├── graph navigate → 图谱导航(--entity / --hops)
├── graph cleanup → 清理图谱
├── feedback → 记忆反馈(--id / --useful / --not-useful / --reason)
└── repl → 交互模式(默认入口)
与 REST API Harness 模式的对应
| 模式组件 | 实际文件 |
|---|---|
cli_anything/<service>/ |
cli_anything/zhiyi/ |
core/client.py |
封装所有 zhiyid HTTP 端点(health/search/stats/graph/feedback) |
<service>_cli.py |
zhiyi_cli.py — Click CLI + REPL |
skills/SKILL.md |
Agent 可发现的 skill(含 JSON 输出说明) |
tests/test_core.py |
9 个测试(client init/health/stats/search/graph/metrics/diagnose) |
setup.py |
namespace package + console_scripts 入口 |
诊断命令实践
health 命令检查 5 个组件:
- zhiyid —
GET /api/v1/health状态字段 - bge-embed —
http://localhost:8000/health - IPC sidecar — socket 文件存在性
/tmp/zhiyi-ipc.sock - Graph DB —
node_count > 0验证 - Memory backend —
total_memories > 0验证
返回 overall: ok/degraded 状态。源码见 core/client.py:dignose()。
构建验证
pip install -e ~/bin/cli-anything-zhiyi
cli-anything-zhiyi health
# ✅ 整体状态: ok
python3 ~/bin/cli-anything-zhiyi/cli_anything/zhiyi/tests/test_core.py
# ✅ All 9 tests passed!
关键决策
- 跳过 PyPI:自用场景,
pip install -e .即可 - 无
utils/backend.py:服务本身就是后端,core/client.py直接 HTTP 调用 - 环境变量化:
ZHIYI_API_BASE和ZHIYI_API_KEY支持覆盖 - JSON 输出:所有命令支持
--json机器可读格式