Install any skill in seconds. Free to start, no credit card required.
Get Started Free →zhimeng's Agent 智能助手操作技能。 触发场景:用户提到"问知识库"、"发日报"、"检查Agent"、"重建索引"、"知识问答"等。
.claude/skills/majiayu000-zhimeng-agent/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 105% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 63% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 118% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 9% | 0% |
zhimeng's Agent 是基于 Obsidian 知识库的 RAG 智能问答助手,由 Claude Opus 4.5 驱动。支持知识库问答、日报同步、飞书消息推送等功能。
| 项目 | 值 | |------|-----| | 服务地址 | http://localhost:8001 | | 项目路径 | /Users/qitmac001395/workspace/QAL/ideas/apps/zhimeng-agent | | 知识库路径 | /Users/qitmac001395/Documents/Obsidian Vault | | 向量数据库 | ChromaDB (data/chroma/) | | LLM 模型 | anthropic/claude-sonnet-4-20250514 |
| 能力 | 端点 | 用途 | 示例触发词 | |------|------|------|-----------| | 知识问答 | POST /ask | 基于知识库的 RAG 问答 | "问知识库"、"查一下" | | 健康检查 | GET /health | 检查服务状态和文档数量 | "检查Agent"、"服务状态" | | 重建索引 | POST /index | 重新索引 Obsidian 文档 | "重建索引"、"更新知识库" | | 飞书Webhook | POST /webhook/feishu | 接收飞书消息事件 | - |
POST /ask)请求体:
json{ "question": "用户问题", "top_k": 5, "include_sources": true, "filter_folder": null, "user_id": "用户唯一标识" }
响应体:
json{ "answer": "回答内容", "sources": [ {"file": "文件名.md", "folder": "文件夹", "relevance": 0.85} ], "tokens_used": 1234 }
参数说明:
question (必填): 用户问题top_k (可选, 默认5): 检索文档数量 (1-20)include_sources (可选, 默认true): 是否返回来源filter_folder (可选): 限定搜索的文件夹user_id (可选): 用户标识,用于对话记忆GET /health)响应体:
json{ "status": "healthy", "vectorstore_loaded": true, "document_count": 1316 }
POST /index)请求体:
json{ "paths": ["Journal", "Projects"], "force": false }
响应体:
json{ "status": "success", "chunks_indexed": 1500 }
步骤1: 检查服务状态
curl http://localhost:8001/health
步骤2: 发送问题
curl -X POST http://localhost:8001/ask \
-H "Content-Type: application/json" \
-d '{"question": "你的问题", "top_k": 5}'
步骤3: 解析响应中的 answer 和 sources步骤1: 读取今日日报
读取 ~/Documents/Obsidian Vault/Journal/YYYYMMDD.md
步骤2: 提取关键内容
- 完成的工作
- 代码变更统计
- AI 消耗统计
步骤3: 格式化为飞书消息
使用 feishu-messaging 技能发送
步骤4: 发送到目标用户
调用 mcp__feishu__im_v1_message_create
收件人: 王植萌 (open_id: ou_18b8063b232cbdec73ea1541dfb74890)步骤1: 停止正在进行的查询
步骤2: 调用索引接口
curl -X POST http://localhost:8001/index \
-H "Content-Type: application/json" \
-d '{"force": true}'
步骤3: 验证索引结果
curl http://localhost:8001/health
确认 document_count 已更新启动服务:
bashcd /Users/qitmac001395/workspace/QAL/ideas/apps/zhimeng-agent poetry run uvicorn src.main:app --host 0.0.0.0 --port 8001 --reload
启动飞书长连接 (本地开发,无需公网IP):
bashcd /Users/qitmac001395/workspace/QAL/ideas/apps/zhimeng-agent poetry run python src/feishu_ws.py
后台启动:
bash# 主服务 nohup poetry run uvicorn src.main:app --host 0.0.0.0 --port 8001 > /tmp/zhimeng-agent.log 2>&1 & # 飞书长连接 nohup poetry run python src/feishu_ws.py > feishu_ws.log 2>&1 &
日报同步工作流:
feishu-messaging 技能发送消息知识库维护工作流:
obsidian-organize 整理文档结构/index 重建索引检查:
poetry installlsof -i :8001config/.env 是否存在尝试:
POST /index {"force": true}检查:
tail -f feishu_ws.logenv# LLM 配置 LLM_PROVIDER=anthropic LLM_MODEL=claude-sonnet-4-20250514 ANTHROPIC_API_KEY=sk-ant-xxx # 飞书配置 FEISHU_APP_ID=cli_xxx FEISHU_APP_SECRET=xxx # 服务配置 HOST=0.0.0.0 PORT=8001 DEBUG=true
主要配置项:
obsidian_vault_path: 知识库路径chroma_persist_dir: 向量数据库持久化目录chunk_size: 文档分块大小 (默认1000)chunk_overlap: 分块重叠 (默认200)/tmp/zhimeng-agent.logfeishu_ws.logINFO:src.retriever:检索到 X 个相关文档 # 检索成功
INFO:httpx:HTTP Request: POST https://api.anthropic.com/v1/messages # LLM 调用
INFO:src.smart_agent:已更新用户 xxx 的对话历史 # 对话记忆更新.env 文件不要提交到 Git| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 28,089 | 16,910 | -40% | 1 | 1 | 0% | 2,649 | 2,261 | -15% | 0 | 0 | — |
case-02 | fail→fail | 38,738 | 9,620 | -75% | 1 | 1 | 0% | 5,496 | 2,536 | -54% | 0 | 0 | — |
case-03 | fail→fail | 8,047 | 19,879 | +147% | 1 | 1 | 0% | 1,374 | 2,425 | +76% | 0 | 0 | — |
case-04 | fail→pass | 12,336 | 2,965 | -76% | 1 | 1 | 0% | 1,255 | 2,569 | +105% | 0 | 0 | — |
case-05 | fail→pass | 9,932 | 3,538 | -64% | 1 | 1 | 0% | 1,664 | 2,673 | +61% | 0 | 0 | — |
case-06 | pass→pass | 8,646 | 4,779 | -45% | 1 | 1 | 0% | 1,547 | 2,929 | +89% | 0 | 0 | — |
case-07 | pass→pass | 15,592 | 3,909 | -75% | 1 | 1 | 0% | 2,933 | 2,672 | -9% | 0 | 0 | — |
case-08 | fail→pass | 9,102 | 8,796 | -3% | 1 | 1 | 0% | 1,633 | 2,656 | +63% | 0 | 0 | — |
case-09 | fail→pass | 6,447 | 3,232 | -50% | 1 | 1 | 0% | 1,181 | 2,571 | +118% | 0 | 0 | — |
case-10 | fail→pass | 19,985 | 8,262 | -59% | 1 | 1 | 0% | 2,416 | 2,626 | +9% | 0 | 0 | — |
case-11 | fail→pass | 9,527 | 6,601 | -31% | 1 | 1 | 0% | 1,720 | 3,314 | +93% | 0 | 0 | — |
case-12 | pass→pass | 5,455 | 2,827 | -48% | 1 | 1 | 0% | 910 | 2,421 | +166% | 0 | 0 | — |
case-13 | fail→pass | 20,811 | 9,316 | -55% | 1 | 1 | 0% | 2,695 | 2,702 | +0% | 0 | 0 | — |
case-14 | fail→pass | 10,964 | 7,579 | -31% | 1 | 1 | 0% | 1,148 | 2,405 | +109% | 0 | 0 | — |
case-15 | fail→pass | 5,036 | 4,230 | -16% | 1 | 1 | 0% | 795 | 2,677 | +237% | 0 | 0 | — |
case-16 | fail→pass | 13,310 | 10,620 | -20% | 1 | 1 | 0% | 1,306 | 3,037 | +133% | 0 | 0 | — |
case-17 | pass→fail | 11,147 | 3,035 | -73% | 1 | 1 | 0% | 1,229 | 2,506 | +104% | 0 | 0 | — |
case-18 | fail→pass | 14,870 | 9,959 | -33% | 1 | 1 | 0% | 2,437 | 2,944 | +21% | 0 | 0 | — |
case-19 | fail→pass | 11,534 | 11,175 | -3% | 1 | 1 | 0% | 1,750 | 3,132 | +79% | 0 | 0 | — |
case-20 | pass→pass | 13,487 | 14,030 | +4% | 1 | 1 | 0% | 1,425 | 3,256 | +128% | 0 | 0 | — |
case-21 | pass→pass | 13,892 | 7,823 | -44% | 1 | 1 | 0% | 1,717 | 3,425 | +99% | 0 | 0 | — |
case-22 | pass→pass | 19,804 | 13,575 | -31% | 1 | 1 | 0% | 2,744 | 4,571 | +67% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.