xiaowei-system/skills/agent-native/cli-anything/references/zhiyi-cli-example.md

2.4 KiB
Raw Blame History

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 个组件:

  1. zhiyidGET /api/v1/health 状态字段
  2. bge-embedhttp://localhost:8000/health
  3. IPC sidecar — socket 文件存在性 /tmp/zhiyi-ipc.sock
  4. Graph DBnode_count > 0 验证
  5. Memory backendtotal_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_BASEZHIYI_API_KEY 支持覆盖
  • JSON 输出:所有命令支持 --json 机器可读格式