项目简介
Inkeep Agent运行时API是Inkeep Agent框架的核心后端服务,旨在托管和执行AI Agent,并以标准化的方式向客户端(如LLM或Web应用)提供上下文、工具和Prompt模板。它支持多Agent架构、凭证管理和多种传输协议,为构建复杂的AI应用提供了坚实的基础。
主要功能点
- 上下文管理: 托管和管理资源,提供数据访问能力,确保Agent在会话中拥有相关的上下文信息。
- 工具调用: 注册和执行外部工具(包括自定义函数工具和第三方MCP工具),允许Agent调用外部功能来获取信息或执行操作。
- Prompt模板: 支持定义和渲染可定制的Prompt模板,优化Agent与LLM的交互模式。
- 会话管理: 维护和管理Agent与客户端之间的对话状态和会话历史。
- Agent间通信 (A2A): 支持Agent之间的协作和任务转移,实现复杂工作流。
- 可观察性: 集成了OpenTelemetry进行追踪,便于监控Agent的运行情况。
- 多种通信协议: 支持通过HTTP (SSE, Streamable HTTP)、JSON-RPC等协议与客户端通信。
安装步骤
- 克隆仓库:
git clone https://github.com/inkeep/agents.git cd agents - 安装依赖:
pnpm install - 配置环境变量: 在'agents-run-api'目录下创建'.env'文件,并按需配置以下关键变量。例如:
其中,'ANTHROPIC_API_KEY'或'OPENAI_API_KEY'至少需要配置一个,以便Agent能够与LLM提供商交互。ENVIRONMENT=development DB_FILE_NAME=./inkeep.db ANTHROPIC_API_KEY=your_anthropic_api_key OPENAI_API_KEY=your_openai_api_key # 其他可选配置如 TURSO_DATABASE_URL, TURSO_AUTH_TOKEN 等 - 运行数据库迁移: 确保数据库结构最新。
(注:如果上述命令无效,请查阅项目文档或'packages/agents-core/package.json'以获取正确的迁移命令。)# 假设您已安装了Drizzle CLI或其他数据库管理工具,且已进入项目根目录 pnpm --filter @inkeep/agents-core drizzle-kit push:sqlite - 启动服务器:
pnpm --filter agents-run-api dev # 开发模式,热重载 # 或者 pnpm --filter agents-run-api build && pnpm --filter agents-run-api start # 生产模式 (需要先构建)
服务器配置
MCP客户端需要MCP服务器的启动命令及其参数来建立连接。以下是'Inkeep Agent运行时API'作为MCP服务器的配置信息示例:
{ "serverName": "InkeepAgentsRunAPI", "command": "pnpm", "args": [ "--filter", "agents-run-api", "start" ], "env": { "ANTHROPIC_API_KEY": "your_anthropic_api_key", "DB_FILE_NAME": "./inkeep.db" }, "endpoint": "http://localhost:3003/v1/mcp" }
- 'serverName': 服务器的标识名称,例如 "InkeepAgentsRunAPI"。
- 'command': 启动MCP服务器进程的命令,例如 "pnpm"。
- 'args': 传递给命令的参数列表,例如 '["--filter", "agents-run-api", "start"]' 用于启动'agents-run-api'模块。
- 'env': 进程启动时所需的特定环境变量,例如LLM API密钥和数据库文件路径。
- 'endpoint': MCP服务器的JSON-RPC通信入口URL,默认为 'http://localhost:3003/v1/mcp'。
基本使用方法
- API Key 获取: 客户端需要一个有效的API Key ('Authorization: Bearer <api_key>') 来访问受保护的路由。这个API Key 通常在管理API ('agents-manage-api') 中生成和管理。
- MCP 初始化: LLM客户端可以通过向 '/v1/mcp' 端点发送JSON-RPC 'initialize' 请求来开始一个MCP会话。服务器将返回会话ID ('Mcp-Session-Id' 头)。
- 工具调用: 客户端随后可以使用 MCP 的 'tools/call' 方法来调用已注册的Agent工具,例如 'send-query-to-agent'。
- 聊天完成: 对于更传统的聊天交互,客户端可以使用 '/v1/chat/completions' (SSE) 或 '/api/chat' (Vercel数据流协议) 端点与Agent进行对话。
信息
分类
AI与计算