基于 Rube MCP 的 Affinda 文档处理自动化:Awesome Codex Skills 中 affinda-automation 技能实战指南
【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills
本文围绕开源仓库 Awesome Codex Skills 中的 affinda-automation 技能展开,讲解如何通过 Rube MCP(Composio 的 MCP 网关)驱动 Composio 的 Affinda toolkit,让 Codex 自动执行 Affinda 平台的文档解析与数据提取类操作。读完本文,你将掌握"先发现工具、再确认连接、最后执行动作"的完整自动化流程,学会规避工具 Schema 变更、连接状态失效等常见陷阱,并能在自己的 Codex 环境中安装、触发与复用这一技能。
技能定位:它是什么,解决什么问题
affinda-automation是仓库 composio-skills 目录下的一个 Codex 技能。它的SKILL.md通过 YAML frontmatter 声明了元信息:
--- name: affinda-automation description: "Automate Affinda tasks via Rube MCP (Composio). Always search tools first for current schemas." requires: mcp: [rube] ---其中requires.mcp: [rube]是关键声明:该技能依赖名为rube的 MCP 服务器,Codex 在触发技能时会把 Rube MCP 暴露的工具集(以RUBE_前缀命名)作为可用调用面。技能正文开篇即点明其目标——通过 Rube MCP 使用 Composio 的 Affinda toolkit 自动化 Affinda 相关操作,并反复强调一条核心纪律:执行任何工作流之前,永远先调用工具搜索接口获取最新 Schema。
Affinda 是面向文档处理与结构化数据提取领域的平台(其 toolkit 由 Composio 集成并托管,行业背景可结合公开资料理解)。在本仓库语境下,你不需要关心 Affinda 的内部实现,只需把它视为一个已被 Composio 封装、可通过 MCP 工具调用的第三方能力面。这一技能与仓库中其他数百个*-automation技能(如 composio-automation、docsumo-automation)共享同一套 Rube MCP 工作流模板,区别仅在于目标 toolkit 与具体 use case,因此本文讲解的模式可以无缝迁移到任意一个同类技能上。
前置条件
开始使用该技能前,需要满足三项条件:
- Rube MCP 已连接:客户端环境中必须存在
RUBE_SEARCH_TOOLS等 Rube 工具,Codex 才能感知到技能所依赖的调用面; - Affinda 连接处于 ACTIVE 状态:通过
RUBE_MANAGE_CONNECTIONS以toolkit: affinda建立连接,并确认状态为激活; - 先搜索再执行:任何工作流开始前都必须调用
RUBE_SEARCH_TOOLS获取当前可用的工具 Schema,禁止凭记忆硬编码工具 slug 或参数。
这三条中最后一条是文档反复强调的"第一纪律",其根源在于:Composio 侧的 toolkit 工具 Schema 会随平台迭代而变动,只有实时查询才能保证参数名、参数类型与执行计划与当前版本一致。
环境搭建:接入 Rube MCP
技能文档给出了极简的接入方式——无需任何 API Key,只需在客户端(Codex)的 MCP 配置中添加一个端点:
https://rube.app/mcp添加后即可直接使用。完整搭建步骤如下:
- 验证 Rube MCP 可用:确认
RUBE_SEARCH_TOOLS能正常响应; - 调用
RUBE_MANAGE_CONNECTIONS,传入toolkit: affinda; - 若连接状态不是 ACTIVE,则跟随返回的授权链接(auth link)完成 OAuth 设置;
- 在运行任何工作流之前,再次确认连接状态显示为 ACTIVE。
从仓库整体看,该技能本身并不包含独立脚本,它的价值在于把"连接管理 + 工具发现 + 动作执行"这一套操作固化为 Codex 可自动遵循的指令。若你需要把技能安装进 Codex 环境,可参考 README.md 的 Quickstart:推荐使用 skill-installer 的脚本安装,或手动将技能目录复制到$CODEX_HOME/skills/(默认~/.codex/skills)后重启 Codex,技能即可依据 frontmatter 中的description在会话中被自动触发。
工具发现:一切工作流的起点
文档强调,执行工作流前必须先做工具发现。典型调用如下:
RUBE_SEARCH_TOOLS queries: [{use_case: "Affinda operations", known_fields: ""}] session: {generate_id: true}该调用会返回四类关键信息:
- 可用的工具 slug(tool slugs):后续执行阶段的定位依据;
- 输入 Schema:每个工具期望的字段名与类型;
- 推荐的执行计划(recommended execution plans):针对该 use case 的推荐调用顺序;
- 已知陷阱(known pitfalls):该工具链路上已知的注意事项。
queries中use_case可以替换为你当前具体的 Affinda 任务描述(例如"解析发票"、"提取简历字段"等),known_fields留空表示不做先验假设,交由搜索接口返回完整 Schema。首次搜索时使用generate_id: true让会话生成新 ID,后续复用该 ID 保持上下文连贯。
核心工作流:三步执行模式
文档给出了一个固定三步模式,所有 Affinda 自动化任务都应遵循:
Step 1:发现可用工具
RUBE_SEARCH_TOOLS queries: [{use_case: "your specific Affinda task"}] session: {id: "existing_session_id"}将use_case替换为具体任务描述,传入已存在的session_id(同一工作流内复用会话)。这一步产出本次任务需要使用的工具 slug 与参数 Schema。
Step 2:检查连接状态
RUBE_MANAGE_CONNECTIONS toolkits: ["affinda"] session_id: "your_session_id"传入 toolkit 列表(此处为["affinda"])与会话 ID,确认返回的连接状态为 ACTIVE。若为未激活状态,需回到 Setup 阶段完成授权后再继续。
Step 3:执行工具动作
RUBE_MULTI_EXECUTE_TOOL tools: [{ tool_slug: "TOOL_SLUG_FROM_SEARCH", arguments: {/* schema-compliant args from search results */} }] memory: {} session_id: "your_session_id"RUBE_MULTI_EXECUTE_TOOL是执行阶段的核心入口:
tool_slug必须来自 Step 1 的搜索结果,不要硬编码;arguments必须严格遵循搜索返回的 Schema(字段名与类型逐一对应);memory参数必须始终携带,即使为空也要显式传{};session_id复用当前工作流会话。
已知陷阱与避坑指南
文档总结的六条已知陷阱,是实操中最容易踩坑的地方:
- 永远先搜索:工具 Schema 会变化,切勿在未调用
RUBE_SEARCH_TOOLS的情况下硬编码工具 slug 或参数; - 检查连接:执行工具前务必通过
RUBE_MANAGE_CONNECTIONS确认 ACTIVE 状态,连接失效会导致动作全部失败; - Schema 合规:字段名与类型必须逐字遵循搜索结果,任何偏差(大小写、可选必填、类型)都可能被拒;
- memory 参数:
RUBE_MULTI_EXECUTE_TOOL的调用中必须包含memory,即便内容为空也要传{}; - 会话复用:同一工作流内复用 session ID 以保持上下文,开启新工作流时再生成新 ID;
- 分页处理:检查响应中是否带有分页 token(pagination tokens),若有则持续拉取直至数据完整,避免遗漏批量结果。
第 4 条是文档特别强调的细节——memory看似可选,实则是调用契约的一部分,漏传可能导致工具执行被拒或上下文丢失。第 6 条则对应批量操作场景,是保证数据完整性的关键。
快速参考:常用操作一览
文档以表格形式给出了五类操作的速查方式:
| 操作 | 方法 |
|---|---|
| 查找工具 | RUBE_SEARCH_TOOLS,传入 Affinda 相关的 use case |
| 建立连接 | RUBE_MANAGE_CONNECTIONS,传入toolkit: affinda |
| 执行动作 | RUBE_MULTI_EXECUTE_TOOL,使用搜索得到的工具 slug |
| 批量操作 | RUBE_REMOTE_WORKBENCH,配合run_composio_tool() |
| 获取完整 Schema | RUBE_GET_TOOL_SCHEMAS,用于带schemaRef的工具 |
其中后两项是进阶能力:批量操作场景建议切换到RUBE_REMOTE_WORKBENCH,在其沙箱内通过run_composio_tool()以编程方式连续调用多个工具;当搜索返回的工具带有schemaRef引用时,可用RUBE_GET_TOOL_SCHEMAS拉取完整 Schema 定义,适合需要精确构造复杂参数的场景。
在 Codex 中安装与触发
作为仓库 README.md 所定义的"模块化指令包",该技能的价值在于把上述流程固化为 Codex 可自动遵循的操作规范。安装方式有两种:
方式一:使用 skill-installer(推荐)
git clone <仓库地址> cd awesome-codex-skills python skill-installer/scripts/install-skill-from-github.py --repo <owner>/<repo> --path composio-skills/affinda-automation方式二:手动安装
- 将 composio-skills/affinda-automation 目录复制到
$CODEX_HOME/skills/(默认~/.codex/skills/); - 重启 Codex 以加载新元数据;
- 在会话中自然描述 Affinda 相关任务,Codex 会根据
descriptionfrontmatter 自动匹配并触发该技能。
触发之后,技能正文会引导 Codex 依次执行前置条件检查、工具发现、连接确认与动作执行四个阶段,最终完成 Affinda 平台的自动化操作。值得一提的是,由于本技能与仓库中其他数百个*-automation技能共享同一套模式(可对照 composio-automation 等同类技能验证),掌握本文的三步工作流后,你可以在不学习任何新概念的前提下,直接套用到任意 Composio 集成平台的自动化任务上。
【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考