2026年6月6日 3 分钟阅读

如何用 Lite-Harness 统一管理 Claude Code、Codex 和 Pi 三大 AI 编程 Agent?

tinyash 0 条评论

如果你同时使用多个 AI 编程 Agent——Claude Code 写后端、Codex 做前端、Pi 做自动化测试——你一定遇到过这个问题:每个 Agent 有自己独立的 CLI、API、配置文件和 SDK

Claude Code 用 claude 命令和 Anthropic API,Codex 用 codex 命令和 OpenAI API,Pi 用独立 CLI。每次切换 Agent 就得切换思维方式,更别提共享的上下文、工具和密钥管理体系了。

Lite-Harness 是 LiteLLM 团队(GitHub 20k+⭐ 的 AI Gateway 项目)推出的一款统一 Agent SDK,让所有主流编程 Agent 使用同一个接口调用。简单说就是:你用一套 API,调用所有 Agent。

为什么需要统一 Harness?

维度独立运行Lite-Harness 统一调用
代码接口每个 Agent 一套 API/SDKquery() 统一接口
模型切换改 CLI 命令 + 换配置文件model 参数即可
密钥管理分散在各 CLI 的 config 文件统一环境变量 + 可选 LiteLLM Gateway 中心化管理
流式输出格式各异(SSE/SSH/stdio)统一 Claude Agent SDK 格式
工具集成每个 Agent 各自实现共享 MCP / Skills / Tools

安装与环境配置

Lite-Harness 目前通过 GitHub 源码安装(npm/PyPI 即将发布),只需三步:

git clone https://github.com/LiteLLM-Labs/lite-harness.git
cd lite-harness

npm install --prefix src/sdk/server

export ANTHROPIC_API_KEY=sk-ant-***   # Claude Code
export OPENAI_API_KEY=sk-***          # Codex

TypeScript 示例:一行代码切换 Agent

TS SDK 需要先构建:

npm install --prefix src/sdk/typescript && npm run build --prefix src/sdk/typescript

然后用 query() 统一接口调用任意 Agent:

import { query } from "@lite-harness/sdk";

const prompt = "修复这个失败的测试用例";

// 调用 Claude Code(Claude Opus 4)
for await (const message of query({
  prompt,
  options: { harness: "claude-code", model: "claude-opus-4-8" },
})) {
  console.log(message);
}

// 同一段代码,切到 Codex 只需改一个参数
for await (const message of query({
  prompt,
  options: { harness: "codex", model: "gpt-5.5" },
})) {
  console.log(message);
}

核心能力就一句话:改参数不改代码harness 控制用哪个 Agent,model 控制用哪个模型,完全不侵入已有的业务逻辑。

Python 示例:异步调用 Agent

Python SDK 安装:

pip install -e src/sdk/python    # Python 3.10+

接入方式同样简洁:

from lite_harness import query, AgentOptions

prompt = "修复这个失败的测试用例"

async for message in query(
    prompt=prompt,
    options=AgentOptions(harness="claude-code", model="claude-opus-4-8"),
):
    print(message)

async for message in query(
    prompt=prompt,
    options=AgentOptions(harness="codex", model="gpt-5.5"),
):
    print(message)

Python 版本的 AgentOptions 是类型安全的 Pydantic 模型,IDE 自动补全友好。

支持的 Agent Harnesses

目前支持三种主流 Agent:

Harness 名称对应工具上游项目
claude-codeClaude Code / Claude Agent SDKanthropics/claude-agent-sdk-python
codexOpenAI Codex CLIopenai/codex
pi-aiPi AI AgentPi AI 官方 CLI

所有 Harness 的 provider 实现都在 src/sdk/server/providers/ 目录下,可以根据需要参照格式新增。

进阶:集成 LiteLLM AI Gateway

如果你的团队有多人使用 AI Agent,可以接入 LiteLLM AI Gateway 实现中心化的密钥管理、预算控制、日志审计和故障转移:

export LITELLM_API_BASE=https://litellm.your-company.com/v1
export LITELLM_API_KEY=sk-litellm-***
import { query } from "@lite-harness/sdk";

for await (const message of query({
  prompt: "排查这条生产链路追踪",
  options: {
    harness: "codex",
    model: "anthropic/claude-opus-4-8",  // 通过 Gateway 路由到 Claude
  },
}));

这种模式下,团队所有 Agent 调用都走同一个 Gateway,谁用了多少预算、哪个 Agent 表现最好,一清二楚。

实战:用 Lite-Harness 做 A/B 测试

Lite-Harness 最有价值的场景之一是 Agent A/B 对比测试。比如你在评估用 Claude Opus 4 还是 GPT-5.5 来做代码审查,脚本可以这样写:

import asyncio
from lite_harness import query, AgentOptions

prompts = [
    "审查以下代码是否有安全漏洞:def login(pwd): db.query(f'SELECT * FROM users WHERE password={pwd}')",
    "优化这段代码的性能:for i in range(len(items)): print(items[i])",
]

async def evaluate(harness_name, model_name):
    for i, prompt in enumerate(prompts):
        print(f"\n[{harness_name}/{model_name}] Task {i+1}:")
        async for msg in query(prompt=prompt, options=AgentOptions(
            harness=harness_name, model=model_name
        )):
            print(msg, end="")

async def main():
    await asyncio.gather(
        evaluate("claude-code", "claude-opus-4-8"),
        evaluate("codex", "gpt-5.5"),
    )

asyncio.run(main())

两个 Agent 并发运行,结果直接在终端对比,不需要在终端间来回切换。

文件路径布局

Lite-Harness 的目录结构清晰,方便自行扩展:

lite-harness/
├── src/
│   └── sdk/
│       ├── server/          # 后端服务(自动启动)
│       │   └── providers/   # 各 Harness 的具体实现
│       ├── typescript/      # TS SDK 源码
│       └── python/          # Python SDK 源码
└── README.md

如果要添加新的 Harness,只需在 providers/ 目录下实现对应的启动和通信逻辑即可。

什么时候该用 Lite-Harness?

  • 多 Agent 团队:开发、测试、代码审查分别用不同 Agent,但想统一代码接口
  • Agent 选型对比期:想快速在 Claude Code 和 Codex 之间切换对比效果
  • 工具链集成:MCP Server 或 CI/CD 流程中需要同时调用多个 Agent
  • 预算管控团队:配合 LiteLLM Gateway 统一管控 Agent 调用成本

注意事项

  • Lite-Harness 当前处于 Preview 阶段,SDK 尚未发布到 npm 或 PyPI——需要从源码安装
  • 各 Agent 的 API 密钥仍需各自申请,但可以通过 Gateway 中心化管理
  • pi-ai Harness 的成熟度可能不如 claude-codecodex,生产环境建议优先使用后两者
  • 跨 Harness 的模型参数(max_tokens、temperature 等)映射规则不同,使用前建议验证
  • 如果你已经在用 LiteLLM AI Gateway,Lite-Harness 可以无缝衔接——设置 LITELLM_API_BASE 后,model 参数可以直接用 Gateway 中的虚拟模型名

总结

Lite-Harness 的价值不是替代任何一个 Agent,而是让你在多个 Agent 之间自由切换而不需要学习多套 API。对于同时使用 Claude Code 和 Codex 的开发者来说,把 harness 参数从 "claude-code" 改成 "codex" 就能换一个 Agent 工作,这种抽象层本身就是一种开发效率投资。

项目地址:github.com/LiteLLM-Labs/lite-harness

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。