jacksonanstee/agent-harness-JA
GitHub: jacksonanstee/agent-harness-JA
基于 Claude Agent SDK 构建的本地优先 LLM agent 生产级封装框架,提供多模型路由、安全防护与对抗性评估能力。
Stars: 0 | Forks: 0
# agent-harness-JA
这个仓库 **既是一个可用的工具,也是一个有完整文档的构建过程。**
- [`src/`](./src) 文件夹包含了 harness 本身。
- [`process/`](./process) 文件夹展示了它的范围界定、被裁剪的内容,以及在此过程中遇到的问题。
- [`docs/decisions/`](./docs/decisions) 文件夹将每一个重要的架构决策记录为 ADR。
由 Jackson Anstee 作为作品集项目构建。欢迎反馈、提问和审查。
## 这是什么
这是一个轻量级、基于 MIT 许可证、本地优先的 harness,它封装了 Claude Agent SDK,并提供了每个生产级 agent 所需的三个核心功能:
| 层级 | 提供的功能 |
|---|---|
| **Harness** | 多模型路由(根据任务形态选择 Haiku/Sonnet/Opus)、技能加载、hook runtime、telemetry、记忆 |
| **安全** | 针对工具结果的 Prompt 注入扫描器、密钥脱敏、权限模型、沙箱边界 |
| **评估** | Golden-task 回归测试套件、红队测试语料库(≥50 个用例)、两阶段对抗性验证 |
## 这不是什么
- 不是一个全新的 agent 框架。它封装了 Claude Agent SDK;而不是替代它。
- 在 v1 版本中不是 provider-agnostic 的。仅支持 Claude。参见 [ADR-0003](./docs/decisions/0003-claude-sdk-first.md)。
- 不是托管的 SaaS。本地优先,单用户,自行运行。
- 不是 UI。CLI + 库。
有关更详细的理由,请参阅 [process/00-problem-framing.md](./process/00-problem-framing.md)。
## 快速开始
```
# 创建新的 agent 项目
npx agent-harness-ja init my-agent
cd my-agent
# 配置
export ANTHROPIC_API_KEY=sk-ant-...
# 运行 agent
npx agent-harness-ja run
# 运行 eval suite (golden + red-team)
npx agent-harness-ja eval
# 导出 telemetry 为 JSONL (按 --session / --type 过滤)
npx agent-harness-ja telemetry export
```
## 如何阅读这个仓库(面向评估者)
如果你将这个仓库作为作品集或代码示例进行评估,建议的阅读顺序如下:
1. **[process/00-problem-framing.md](./process/00-problem-framing.md)** — 为什么会有这个项目,以及它的目标受众。
2. **[process/01-requirements.md](./process/01-requirements.md)** — 包含可追踪 ID 的功能和非功能性需求。
3. **[docs/decisions/](./docs/decisions/)** — 六个以上的 ADR,涵盖了 harness 定位、许可证、SDK 目标、telemetry 存储、注入扫描器方案以及技能 schema。
4. **[docs/architecture.md](./docs/architecture.md)** — 系统设计和模块边界。
5. **[docs/security-model.md](./docs/security-model.md)** — 威胁模型和缓解措施。
6. **[src/](./src)** — 具体实现。在代码注释中会引用 `process/01-requirements.md` 中的需求 ID 以示验证。
7. **[process/devlog/](./process/devlog/)** — 每周回顾,包括出现的问题。
`process/` 文件夹是最大的亮点。大多数仓库只展示最终产物;而这个仓库展示了背后的思考过程。
## 架构概览
```
┌─────────────────────────────────────────────────────┐
│ EVAL LAYER │
│ Golden tasks · Red-team corpus · Adversarial verify│
├─────────────────────────────────────────────────────┤
│ HARNESS LAYER │
│ Router · Skills · Hooks · Telemetry · Memory │
├─────────────────────────────────────────────────────┤
│ SECURITY LAYER │
│ Injection scanner · Secret scanner · Permissions │
│ Sandbox boundaries │
└─────────────────────────────────────────────────────┘
│
▼
Claude Agent SDK
```
完整的架构图和模块边界请见 [docs/architecture.md](./docs/architecture.md)。
## 状态
| 里程碑 | 状态 |
|---|---|
| 问题界定 + 需求 | 完成 |
| ADR 0001–0003 | 完成 |
| 仓库脚手架 | 进行中 |
| Harness 层(路由、技能、hook、telemetry) | 第 1–2 周 |
| 安全层(注入、密钥、权限、沙箱) | 第 2 周 |
| 评估层(golden、红队、对抗性验证) | 第 3 周 |
| 文档 + 发布 | 第 4 周 |
发布计划:[process/05-week-plan.md](./process/05-week-plan.md)。
## 许可证
[MIT](./LICENSE)。有关理由请参见 [ADR-0002](./docs/decisions/0002-mit-license.md)。
## 作者
Jackson Anstee — [github.com/...](https://github.com/) · [linkedin.com/in/...](https://linkedin.com/)
如果您正在招聘 AI 工程、agent 基础设施或 LLM 应用安全相关的职位,这个仓库展示了我如何进行范围界定、设计和发布。欢迎联系我——期待能与您交流。
标签:AI智能体, Claude SDK, DLL 劫持, MITM代理, TypeScript, 大语言模型, 安全护栏, 安全插件, 开发框架, 文档结构分析, 模型评估, 自动化攻击