如何为 SIA 选对 agent impl:claude、openhands、pydantic-ai 选择决策树指南
【免费下载链接】siaSIA is a Self Improving AI framework to autonomously improve the performance of any AI system (Model / Agent) on a benchmark task.项目地址: https://gitcode.com/GitHub_Trending/sia4/sia
SIA(Self Improving AI)是一个让 AI 系统自主迭代的自改进框架。很多新手在跑sia run时卡在第一道选择题:meta agent 的agent impl到底该选claude、openhands还是pydantic-ai?本文用一张决策树 + 快速对照表,帮你在 3 分钟内选对实现,避开“provider 不匹配被拒”“缺 SDK 报 ImportError”这两个最常见的坑。
先搞懂:agent impl 决定的是谁?
很多教程没讲清楚这一点,导致选型混乱:
- Target Agent(目标 agent)是 SIA生成出来的代码,SIA 从不把它当"引擎"来跑,它的模型/供应商由
--target-agent-profile决定,与 agent impl 无关。 - Meta / Feedback Agent才是运行在 SIA 内部、负责"生成初始 agent + 复盘改进"的执行者,它才需要选 agent impl。
也就是说:你在为"改进者"选执行引擎,而不是为"被改进的对象"。上图右侧每代数的提升,正是由 meta/feedback agent 驱动的。agent impl 的注册与调度逻辑在 sia/agent_impls/base.py——三个实现各用一次register(...)注册自己,orchestrator 按名字分发。
三种 agent impl 逐个拆解
1.claude:Anthropic 专属,最省心
基于 Claude Agent SDK(sia/agent_impls/claude.py):
- 只支持 Anthropic 供应商,且只认
haiku/sonnet/opus三个快捷名,配非 Anthropic provider 会在加载 profile 时直接报错 - 自带 Bash、Read、Write、Edit、Glob 工具,
bypassPermissions模式直接干活 - 轨迹自动存在
~/.claude/projects/ - 默认 meta profile(default-meta.json)就是它 + Haiku,所以
pip install 'sia-agent[claude]'后零配置就能跑
一句话:你的 meta 模型是 Claude,闭眼选它。
2.openhands:多供应商通吃,灵活性最强
基于 OpenHands SDK(sia/agent_impls/openhands.py):
- 多供应商路由:Gemini、OpenAI、Anthropic、Together、Nebius、OpenRouter 等都行,模型名用
provider/model全限定格式(如moonshotai/Kimi-K2.6) - 对接 OpenAI 兼容端点时会自动加 litellm 路由前缀;provider 里配置
litellm_prefix(如openrouter)还能保住prompt caching不被网关悄悄关掉——跑长循环时这直接影响 token 成本 - 轨迹落在工作目录的
openhands_trajectory/,方便复盘
内置的kimi-nebius-meta、openrouter-meta两个 profile 用的都是它。一句话:跑非 Claude 模型、或走 OpenRouter 一把梭,选它。
3.pydantic-ai:Python 原生 SDK,轻量可控
基于 PydanticAI(sia/agent_impls/pydantic_ai.py):
- 模型用 PydanticAI 原生规格(
openai:gpt-4o、anthropic:claude-sonnet-4-5-20250929、google-gla:gemini-3.1-pro-preview) - 工具是纯 Python 函数:
write_file、read_file、bash,迭代次数用UsageLimits精确封顶,路径解析严格限定在工作目录内,行为最"可控" - 对供应商返回非 JSON 的 200 响应有专门的诊断报错,排障信息最友好
一句话:你已经在 PydanticAI 生态里、或想要最轻量的工具循环,选它。
快速对照表
| 维度 | claude | openhands | pydantic-ai |
|---|---|---|---|
| 底层 SDK | Claude Agent SDK | OpenHands SDK (litellm) | PydanticAI |
| 供应商范围 | 仅 Anthropic | 多供应商 / OpenAI 兼容端点 | 多供应商(原生规格) |
| 模型写法 | haiku/sonnet/opus | provider/model全限定 | openai:gpt-4o等原生格式 |
| 安装命令 | pip install 'sia-agent[claude]' | pip install 'sia-agent[openhands]' | pip install 'sia-agent[pydantic-ai]' |
| 轨迹位置 | ~/.claude/projects/ | 工作目录/openhands_trajectory/ | 日志输出 |
| 适合谁 | 只用 Claude 的人 | 多模型/网关用户(默认推荐) | PydanticAI 生态 / 测试场景 |
选择决策树:3 个问题定答案
你的 meta agent 模型是 Anthropic(Claude)的吗? ├─ 是 ──► 选 claude │ · 装 [claude] extra,配 ANTHROPIC_API_KEY │ · 直接用内置 default-meta profile,零配置 │ └─ 否(Gemini / OpenAI / Kimi / Qwen / OpenRouter...) ├─ 需要 litellm 路由 / prompt caching / 自定义 base_url? │ └─ 是 ──► 选 openhands │ · 装 [openhands] extra,模型名写 provider/model │ · 参考内置 openrouter-meta / kimi-nebius-meta │ └─ 偏好 Python 原生 SDK、轻量工具循环? └─ 是 ──► 选 pydantic-ai · 装 [pydantic-ai] extra,模型用原生规格两条容易踩的铁律:
claudeimpl 只配 Anthropic provider,写错会在加载 profile 时直接拒绝(见 docs/configuration.md 末尾 Notes)。- 换 impl 要装对应 extra,否则启动时抛
ImportError并告诉你该pip install什么。
最快上手:一步切换 agent impl
agent impl 写在meta profile里,命令行只用--meta-agent-profile引用,不需要改任何代码:
# 默认:claude impl + Claude Haiku(装 [claude] extra 即可) export ANTHROPIC_API_KEY="..." sia run --task gpqa --max_gen 5 --run_id 1 # 换 openhands impl + OpenRouter 一把梭(一个 key 管 400+ 模型) pip install 'sia-agent[openhands]' export OPENROUTER_API_KEY="..." sia run --task gpqa --meta-agent-profile openrouter-meta \ --target-agent-profile openrouter-target --max_gen 5 --run_id 3想自定义?在./profiles/放一个 JSON 即可(无需改代码),格式参考内置的 kimi-nebius-meta.json:
{ "profile_id": "gemini-meta", "name": "Gemini meta agent", "agent_impl": "openhands", "model": "gemini/gemini-3.1-pro-preview", "provider_id": "gemini" }然后sia run --meta-agent-profile gemini-meta就生效了。内置 profile 全集与 provider 字段说明见 docs/configuration.md,目录里还有 anthropic.json、openrouter.json 等现成 provider 配置可抄。
选错了会报什么错?
| 症状 | 原因 | 解法 |
|---|---|---|
| 加载 profile 时被拒 | claudeimpl 配了非 Anthropic provider | 改用openhands或pydantic-aiprofile |
ImportError: OpenHands SDK not installed | 没装对应 extra | pip install 'sia-agent[openhands]' |
Unknown agent impl: xxx | profile 里拼错了 impl 名 | 只能用claude/openhands/pydantic-ai三个注册名 |
| OpenRouter 上 prompt caching 失效 | 未设litellm_prefix | provider 里加"litellm_prefix": "openrouter" |
总结
- 只用 Claude→
claude(默认,最省心) - 多供应商 / 网关 / 自定义端点→
openhands(灵活性最强,内置 profile 最多的选择) - Python 原生生态 / 精细控制工具循环→
pydantic-ai
选错的成本很低:改一行 profile JSON、重装一个 pip extra 就能切换,三个实现共享同一套 CLI 与运行产物结构,可以随时对比不同组合在同一任务上的表现。更多细节查阅 docs/configuration.md 与 docs/troubleshooting.md。
【免费下载链接】siaSIA is a Self Improving AI framework to autonomously improve the performance of any AI system (Model / Agent) on a benchmark task.项目地址: https://gitcode.com/GitHub_Trending/sia4/sia
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考