Token导航 LogoToken导航TokenDH.com
LLM writer logo
AI代理stdio官方级别未说明来源级核验

LLM writer

MCP Server

Simple Rag Writer 是一个测试驱动的写作助手框架,通过协调多个LLM提供商和MCP服务器,提供交互式规划和批量生成功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pfahlr

提供方

pfahlr

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

简单的Rag Writer

Simple Rag Writer是一个测试驱动的写作助手框架,它:

  • 通过以下方式协调多个LLM提供商(OpenAI、OpenRouter、Gemini等)

litellm.

  • 使用MCP服务器作为文档/参考检索层。
  • 提供交互式规划REPL(srw -c config.yaml plan)与

用于模型切换、知识浏览和上下文的斜线命令 注射。

  • 从YAML执行声明性编写任务以进行批处理生成

(srw -c config.yaml run path/to/tasks/*.yaml).

  • 使用注入的MCP上下文回放过去的计划回合(srw -c config.yaml replay --log --turn ).

该项目有意最小化:每个功能都由测试涵盖,MCP 交互被固定装置打断,避免了真正的网络调用,除非 明确要求。

安装

python -m venv .venv
source .venv/bin/activate
pip install -e .

这将安装 srw,这只是一个薄薄的包裹 simple_rag_writer 包裹。您可以从存储库根目录运行 ./srw ... 或依靠垫片 添加 src/PYTHONPATH.

配置概览

CLI需要一个配置YAML文件来定义模型、提供者、MCP 服务器和日志/提示策略。至少,您必须提供默认型号 以及您计划使用的提供商/模型条目。

default_model: "openai:gpt-4.1-mini"
providers:
  openai:
    type: "openai"
    api_key_env: "OPENAI_API_KEY"
model_defaults:
  temperature: 0.3
models:
  - id: "openai:gpt-4.1-mini"
    provider: "openai"
    model_name: "gpt-4.1-mini"
mcp_servers:
  - id: "notes"
    command: ["mcp-notes-server"]
mcp_prompt_policy:
  default_mode: "raw_capped"
  raw_capped:
    max_items_per_reference: 3
    max_chars_per_item: 800
    max_total_chars: 8000
  summary:
    summarizer_model: "openai:gpt-4.1-mini"
    max_items_per_reference: 5
    summary_max_tokens: 512
logging:
  planning:
    enabled: true
    dir: "logs"
    include_mcp_events: true
    mcp_inline: true

关键配置部分:

  • providers:将提供程序名称映射到 type, api_key,以及可选覆盖

(base_url, model_prefix等等)。

  • models:列表 ModelConfig 条目(id、提供者、模型名、可选

params, label, tags,以及 max_context_tokens).

  • model_defaults:在每次请求之前合并共享生成参数。
  • mcp_servers:每台服务器都需要 id, command (可执行文件+参数),以及

可选的 auto_startMCP客户端发出命令,执行 JSON-RPC握手,并通过缓存发现的工具 tools/list.

  • mcp_prompt_policy:控制检索方式 NormalizedItems被转化

注射前。 raw_capped 修剪和截断,而 summary 使用一个 汇总器型号和每种类型提示。

  • logging.planning:允许规划成绩单、内联MCP部分,以及

输出位置。

添加MCP服务器

  1. 选择一个 id 您将参考 /use ... 在REPL和

references 任务YAML中的条目。

  1. 确定启动MCP服务器的确切命令,并将其拆分为

argv样式列表。配置 必须 列出其中的每个参数 command.

  1. 在下面添加服务器 mcp_servers,可选择翻转 auto_start

false 如果您希望提前手动启动服务器。

示例(uv tool run arxiv-mcp-server --storage-path ...):

mcp_servers:
  - id: "arxiv"
    command:
      - "uv"
      - "tool"
      - "run"
      - "arxiv-mcp-server"
      - "--storage-path"
      - "/home/you/.cache/arxiv-papers"
    auto_start: true

保存配置后,您可以运行 srw -c config.yaml plan,使用 /sources 到 验证服务器是否已列出,然后调用 /use arxiv "query" 以获取数据。相同 arxiv id可以从自动任务YAML中引用 通过 references 条目。

MCP服务器

有关默认MCP服务器的文档,请参阅以下内容 config.yaml

模型

有关默认LLM模型的文档,请参阅以下内容 config.yaml

用法

srw 公开了三个高级命令。

规划模式(srw -c config.yaml plan)

交互式计划模式会启动一个REPL,记录历史、记录转弯和 使用可选的MCP上下文构建提示。Slash命令包括:

  • /models:列出已配置的型号,标记活动型号。
  • /model :切换当前型号。
  • /sources:显示配置的MCP服务器以及发现的工具名称和

描述。

  • /use "query" [limit]:调用MCP工具并显示结果。

您还可以提供键/值参数,如 query:"text" paper_id:"1234" 到 将多个参数传递给工具。

  • 计划和任务提示现在包括 call_mcp_tool 函数提示,因此

模型可以自行请求额外的MCP数据。该工具需要JSON server, tool,可选 params,REPL/runner将输出结果 自动回到对话中。

  • /inject :将选定的MCP项注入内部上下文

缓冲器。

  • /context:预览将添加到的累积MCP上下文

下一个提示。

  • /url [label]:获取一个URL,对其进行规范化,并使其可用于

注射。

  • /quit//q:退出计划模式。

repl维护一个历史窗口(默认5圈)并记录MCP注射 通过以下方式完成 PlanningLogWriter. /context 显示了组合块 你可以查看将要添加的内容。

自动化任务(srw -c config.yaml run tasks/*.yaml)

执行YAML定义的任务,描述要写什么以及引用什么 决心。每个任务都可以声明:

  • id, title, description:提示和日志中使用的元数据。
  • context:可选大纲引用(TODO:大纲加载器)。
  • model以(权力)否决 config.default_model.
  • model_params:每个任务参数覆盖。
  • references:列表 McpReferenceUrlReference 指定的条目

要获取的服务器/工具或URL。MCP参考可以设置 item_type 提示。

  • mcp_error_mode: "skip_with_warning" (默认)或 "fail_task".
  • output:生成的Markdown草稿的路径。

run_tasks_for_paths:

  1. 展开CLI上提供的glob模式。
  2. 加载每个任务并解析MCP/URL引用,规范有效载荷,以及

应用配置的提示策略。

  1. 使用引用构建最终提示并调用ModelRegistry。
  2. 将Markdown写入 output 路径并通过Rich报告进度。

回放模式(srw -c config.yaml replay --log --turn )

重播通过以下方式重新补充计划回合:

  • 解析Markdown日志头以获取配置/模型元数据。
  • 重建历史(至 HISTORY_WINDOW)以及MCP mcp-yaml

块。

  • 完全按照最初发送的方式重建提示(包括插入的提示)

上下文),以便您可以检查或重新运行它(--show-prompt, --run-model).

MCP集成

MCP服务器位于 AppConfig.mcp_servers。每个条目必须与 id 引用于 /sources, /use,以及任务引用。客户:

  1. 通过生成配置的命令 anyio/mcp.client.stdio.
  2. 执行 initialize, tools/list,以及 tools/call JSON-RPC

谈判。

  1. 从中提取文本/结构化有效载荷 CallToolResult 并使其正常化

他们通过 normalize_payload 在迅速的政策之前。

工具发现填充 /sources 带有工具描述和标题的表格, 和那个 /use 命令会自动注入获取的项目以供以后使用。 MCP错误向REPL报告并得到尊重 mcp_error_mode 在自动化过程中 跑。

您还可以通过以下方式将本地LLM作为MCP工具公开: llm_tool 并将该入口连接到运行的进程 python -m simple_rag_writer.mcp.llm_tool --config config.yamlThe llm_tool 部分将技能关键字映射到单个配置的模型(skills: {reason: or-qwen3-235b-a22b})并限制了工具可能调用的模型。匹配的MCP 服务器条目可以简单到:

llm_tool:
  id: "llm"
  tool_name: "llm-complete"
  title: "LLM skill completions"
  skills:
    reason: "or-qwen3-235b-a22b"
    summarize: "or-kimi-k2"
  default_skill: "reason"
  max_tokens_limit: 2048

mcp_servers:
  - id: "llm"
    command:
      - "python"
      - "srw_llm_tool.py"
      - "--config"
      - "config.yaml"

服务器将发布广告 skill 作为枚举 tools/list,并致电 tool 在MCP协议中可以请求 skill: "summarize" 仅确保 允许的模型会收到该提示。

开发与测试

这个repo遵循严格的TDD。对于每一个变化:

  • 从验收测试开始 tests/ (没有新功能

测试)。

  • 模拟/固定MCP服务器; tests/mcp_fixtures/notes_server.py 展示

一个轻量级的JSON-RPC服务器 /statuses/call.

  • pytest (该套件通过模拟来避免真实的网络活动 litellm

完成和HTTP请求)。

  • 更新 codex/TASKS/*.yaml 只有在明确指示的情况下——这些描述

主规范。

命令:

pytest  # runs everything

捐款应尊重项目结构(src/simple_rag_writer/ 为了 逻辑, tests/ 行为)并保持格式一致(2空格缩进 适用于Python/YAML)。

目录标签

目录标签

PythonAI代理工作流自动化写作助手本地部署LLM协调MCP集成批量生成交互式规划

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP