快速上手
安装只需在Package.swift中添加依赖:
dependencies: [ .package(url: "https://github.com/terryso/open-agent-sdk-swift.git", from: "0.1.0") ]几行代码就能跑起一个 Agent:
import OpenAgentSDK let agent = createAgent(options: AgentOptions( apiKey: "sk-...", model: "claude-sonnet-4-6", systemPrompt: "You are a helpful assistant.", maxTurns: 10 )) let result = await agent.prompt("Explain Swift concurrency in one paragraph.") print(result.text) print("Used \(result.usage.inputTokens) input + \(result.usage.outputTokens) output tokens")prompt()是阻塞式的,一次调用完成整个 Agent Loop。如果需要流式输出,用stream():
for await message in agent.stream("Read Package.swift and summarize it.") { switch message { case .partialMessage(let data): print(data.text, terminator: "") case .toolUse(let data): print("Using tool: \(data.toolName)") case .result(let data): print("\nDone (\(data.numTurns) turns, $\(String(format: "%.4f", data.totalCostUsd)))") default: break } }核心架构
你的应用 (import OpenAgentSDK) └── Agent (prompt() / stream()) └── Agentic Loop (API 调用 → 工具执行 → 重复) ├── LLMClient Protocol (AnthropicClient / OpenAIClient) ├── 34 个内置工具 ├── MCP 服务器集成 ├── Session Store (JSON 持久化) └── Hook Registry (20+ 生命周期事件)- LLMClient Protocol:抽象了 LLM 提供商,目前支持 Anthropic (Claude) 和 OpenAI 兼容 API(GLM、Ollama、OpenRouter 等)。支持运行时动态切换模型,按模型分别计费。
- Agent Loop:自动管理多轮对话、工具调用、预算控制、自动压缩。
- Tool System:34 个内置工具,分 Core(10 个)、Advanced(11 个)、Specialist(13 个)三层。支持
defineTool()自定义工具,输入走 Codable 自动解码。 - MCP 集成:支持 stdio、SSE、HTTP 和进程内四种传输方式,MCP 工具自动发现并合并到工具池。
- 多 Agent 协作:通过 AgentTool 生成子 Agent(内置 Explore、Plan 两种类型),Task 系统追踪任务进度,Team + Mailbox 支持 Agent 间通信。
- 会话持久化:对话历史保存、恢复、分叉,支持三种恢复策略。
- 权限与安全:6 种权限模式 + 可组合的策略(白名单、黑名单、只读)+ 沙盒机制(路径和命令过滤)+ Hook 系统(24 个生命周期事件,支持拦截和修改工具输入)。
- Skills 系统:5 个内置 Skill(Commit、Review、Simplify、Debug、Test),支持文件系统自动发现自定义 Skill。
- Thinking/Effort 配置:控制 LLM 深度思考能力和 token 预算,支持运行时动态调节。