AI工具模式定义库

提供类型安全的AI代理工具交互模式定义,适用于开发AI驱动的自动化工具和系统。

  • by cyrup-ai
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 cyrup-ai/kodegen-mcp-schema

使用说明

编解码器 mcp 方案

kodegen生态系统的轻量级MCP(模型上下文协议)工具模式定义。

概述

kodegen_mcp_schema 为AI代理工具和交互提供类型安全的模式定义。该库作为所有工具模式的唯一真实来源,具有最小的依赖性和最大的可重用性。

设计理念:只有架构的库,没有重依赖关系。仅包含使用的Args和PromptArgs类型定义 serde, schemars,以及 serde_json.

安装

将此添加到您的 Cargo.toml:

[dependencies]
kodegen_mcp_schema = "0.1.0"

或者直接从存储库安装:

[dependencies]
kodegen_mcp_schema = { git = "https://github.com/cyrup-ai/kodegen-mcp-schema" }

特性

综合工具架构

  • 文件系统 -文件操作、搜索、目录管理
  • 终端 -命令执行和过程控制
  • Git -版本控制操作(init、commit、branch、worktree)
  • GitHub -问题、PR、代码搜索、安全扫描
  • 浏览器 -Web自动化、研究会议、基于代理的浏览
  • 数据库 -模式检查、SQL执行、连接池
  • 克劳德代理人 -具有记忆和推理能力的多智能体生成
  • Web剪贴 -爬行、内容提取、搜索索引
  • 推理 -顺序思维、MCTS、波束搜索策略
  • 提示 -模板管理和渲染
  • 内省 -使用统计数据和工具调用历史记录

类型安全模式

所有模式都使用Rust的类型系统:

  • 通过以下方式生成JSON模式 schemars
  • Serde序列化/反序列化
  • 约束的验证属性
  • 全面的文件

用法

use kodegen_mcp_schema::{ReadFileArgs, StartSearchArgs, SearchType};

// File reading with optional pagination
let read_args = ReadFileArgs {
    path: "/path/to/file.txt".to_string(),
    offset: 0,
    length: Some(100),
    is_url: false,
};

// Advanced file search
let search_args = StartSearchArgs {
    path: "/project".to_string(),
    pattern: "TODO".to_string(),
    search_type: SearchType::Content,
    file_pattern: Some("*.rs".to_string()),
    max_results: Some(100),
    ..Default::default()
};

// GitHub operations
use kodegen_mcp_schema::{CreateIssueArgs, SearchCodeArgs};

let issue = CreateIssueArgs {
    owner: "cyrup-ai".to_string(),
    repo: "kodegen-mcp-schema".to_string(),
    title: "Bug report".to_string(),
    body: Some("Description here".to_string()),
    labels: Some(vec!["bug".to_string()]),
    assignees: None,
};

模式模式

每个工具都遵循两种主要类型的一致模式:

  • XxxArgs -工具执行的运行时参数
  • XxxPromptArgs -生成上下文提示的参数

例子:

#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ReadFileArgs {
    pub path: String,
    #[serde(default)]
    pub offset: i64,
    #[serde(default)]
    pub length: Option<usize>,
}

发展

先决条件

  • 锈蚀夜间工具链
  • 组件:防锈、防夹

构建和测试

# Build the library
cargo build

# Run tests
cargo test

# Run clippy linter
cargo clippy

# Format code
cargo fmt

# Check without building
cargo check

建筑

模块组织

该库被组织成特定领域的模块:

src/
├── lib.rs              # Re-exports all types
├── filesystem.rs       # File operations and search
├── terminal.rs         # Process and command execution
├── git.rs             # Git operations
├── github.rs          # GitHub API interactions
├── browser.rs         # Browser automation
├── citescrape.rs      # Web crawling
├── database.rs        # Database operations
├── claude_agent.rs    # Agent spawning and memory
├── reasoning.rs       # AI reasoning tools
├── prompt.rs          # Template management
├── config.rs          # Configuration
├── process.rs         # System processes
└── introspection.rs   # Usage statistics

基于会话的模式

有几个工具使用异步会话模式进行长时间运行的操作:

  • 浏览器研究: start_browser_research → get_research_status → get_research_result
  • 文件搜索: start_search → get_search_results → stop_search
  • 网络爬虫: scrape_url → scrape_check_results → scrape_search_results
  • 终端命令: start_terminal_command → read_terminal_output → send_terminal_input
  • 克劳德特工: spawn_claude_agent → read_claude_agent_output → send_claude_agent_prompt

高级功能

强大的搜索功能

文件系统搜索工具支持:

  • 多种搜索模式(文件、内容)
  • 正则表达式引擎(Rust、PCRE2)
  • 案例模式(敏感、不敏感、智能)
  • 边界匹配(字、行)
  • 输出格式(完整、仅文件、按文件计数)
  • 排序、预处理和压缩处理

克劳德特工记忆

用于持久代理知识的记忆工具:

  • 记忆 -将信息存储在命名库中
  • 召回 -跨记忆的语义搜索
  • 列出库 -查看可用内存存储
  • 检查状态 -监控异步记忆

贡献

欢迎投稿!请确保:

  1. 代码遵循现有模式(Args/PromptArgs结构)
  2. 所有类型都派生所需的特征(调试、克隆、序列化、反序列化、JsonSchema)
  3. 使用 #[serde(default)] 用于具有默认值的可选字段
  4. 添加全面的文档
  5. 跑 cargo fmt 和 cargo clippy 提交前

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

链接

关键词

ai, ml, agents, candle, inference, mcp, schemas, tools, automation