工作助手代理

一个基于MCP协议的多功能工作助手代理,支持文件管理、网络搜索、OCR/ASR处理和账本记录功能。

  • by newgpp
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 newgpp/my-agent

使用说明

我的经纪人

MCP供电的工作助理代理

需求

  • Python 3.12
  • Node.js(通过npx用于文件系统MCP服务器)
    • 注: npx 首次运行时需要网络访问npm注册表。

设置

python3.12 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt

创建 .env 从 .env.example 并填写密钥:

  • DEEPSEEK_API_KEY
  • TAVILY_API_KEY
  • GROQ_API_KEY
  • OCR_API_URL
  • OCR_API_TOKEN
  • FS_ALLOWED_DIR_1 (必填)
  • FS_ALLOWED_DIR_2 (可选)
  • APP_HOST (可选,默认 127.0.0.1)
  • APP_PORT (可选,默认 8000)

跑

python -m app.main

服务器将在 http://127.0.0.1:8000.

MCP服务器

MCP服务器由应用程序使用以下命令自动启动 mcp_servers.json.

手动启动命令(用于调试):

# Filesystem MCP server (uses allowed dirs)
npx -y @modelcontextprotocol/server-filesystem "$FS_ALLOWED_DIR_1" "$FS_ALLOWED_DIR_2"

# Tavily MCP server (local Python)
.venv/bin/python servers/tavily_mcp_server.py

测试(SSE)

# NOTE: Use URL encoding for non-ASCII query strings.
curl -G -N --data-urlencode "message=列出Downloads前10个文件" "http://127.0.0.1:8000/v1/chat/sse"
curl -G -N --data-urlencode "message=用tavily搜索旧金山今天天气" "http://127.0.0.1:8000/v1/chat/sse"

分类账(OCR/ASR)

账本管道支持从单个图像或音频输入中提取多条记录。

关键行为:

  • OCR使用基于bbox的行分组和强大的列表式账单分割。
  • LLM在一次调用中返回一个JSON记录数组。
  • 通过批量插入 ledger_upsert_many.
  • CSV列: date, merchant, amount, currency, category, payment_method, note, source_image, source_audio, insert_time
  • source_image/source_audio 仅存储文件名。
  • insert_time 使用当地时间 isoformat.
  • 不应用重复数据删除。

例子:

curl -X POST "http://127.0.0.1:8000/v1/ledger/process" \
  -F "file=@/path/to/receipt.jpg"

网络检查

如果工具调用失败,请验证网络访问:

# DeepSeek API
curl -I https://api.deepseek.com

# Tavily API
curl -I https://api.tavily.com

# OCR API (replace with your endpoint)
curl -I "$OCR_API_URL"