一个 小而完整 的 Capstone Teaching Agent —— 用 Java 23 重写自
s_full.py, 通过 Anthropic Messages 协议,把 LLM 变成可调用 25 种工具、能并行多智能体协作的"代码助手"。
- 25 个内置工具 —— 文件读写、Bash/PowerShell、Grep、Glob、Skill、Subagent、Task、Team、Inbox……
- 多智能体协作 ——
lead与多个teammate通过MessageBus收发消息,支持shutdown_request/plan_approval。 - 自动上下文压缩 —— 超过
TOKEN_THRESHOLD(默认 10w tokens)触发摘要,保留最近 N 轮原文。 - 大输出持久化 —— 工具产物自动落盘到
.task_outputs/,对话里只留预览片段。 - Skill 动态加载 ——
skills/目录下放置 Markdown 即可被 LLM 通过use_skill调用。 - 协议级兼容 —— 任何兼容 Anthropic 协议的网关都可一键接入(已内置对 DeepSeek
/anthropic端点的支持)。
| 依赖 | 版本 |
|---|---|
| JDK | 23+ |
| Maven | 3.9+ |
在项目根目录新建 .env:
# 使用 DeepSeek 的 Anthropic 兼容端点
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
ANTHROPIC_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
MODEL_ID=deepseek-chat如果想直连 Anthropic 官方,只需删除
ANTHROPIC_BASE_URL,并改用ANTHROPIC_AUTH_TOKEN。
mvn -q -DskipTests compile
mvn -q exec:java进入交互式 REPL:
s_full >> 帮我把项目里所有 TODO 都列出来
| 命令 | 作用 |
|---|---|
/compact |
立即压缩对话上下文 |
/tasks |
列出所有任务(pending/in_progress/completed) |
/team |
列出已招募的 teammate |
/inbox |
查看 lead 的收件箱 |
q / exit / 空行 |
退出 |
src/main/java/viper/com/claudecode
├── Main.java # REPL 入口
├── Config.java # 全局常量与环境变量
├── AnthropicClient.java # Anthropic Messages API 客户端
├── core/
│ ├── AgentLoop.java # 智能体主循环
│ ├── ToolDispatch.java # 25 个工具的注册与分派
│ ├── SystemPrompt.java # 系统提示词构建
│ └── Context.java # 全局共享上下文
├── tools/ # base_tools / persisted_output / Subagent
├── managers/ # Todo / Task / Background / MessageBus / Skill / Teammate
├── compress/Compression.java # 自动摘要压缩
└── model/ # Message / ContentBlock / ToolDefinition / AnthropicResponse
Python (s_full.py) |
Java |
|---|---|
s01_agent_loop |
core/AgentLoop.java |
s02_tools |
core/ToolDispatch.java + tools/BaseTools.java |
s03_todo |
managers/TodoManager.java |
s04_subagent |
tools/Subagent.java |
s05_skills |
managers/SkillLoader.java |
s06_compress |
compress/Compression.java + tools/PersistedOutput.java |
s07_tasks |
managers/TaskManager.java |
s08_background |
managers/BackgroundManager.java |
s09_messaging |
managers/MessageBus.java + managers/TeammateManager.java |
s10_governance |
core/ToolDispatch.java (shutdown / plan_approval) |
s11_robustness |
AgentLoop 的错误注入与退避 |
MIT — 仅作为教学用途,欢迎拷贝、改造、二次发行。