cszf1

Lab Agent — Development skill for Claude Code

Development community

Research topic-selection platform.

How to install Lab Agent

This entry records only its repository, not the path inside it, so there is no exact command to give. Open cszf1/lab-agent and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Lab Agent does

Research topic-selection platform. Drives the agent already installed on your machine (pi / Claude Code / Codex / OpenCode / Hermes) as a completion backend over ACP, and grounds novelty claims in real OpenAlex counts.

Alternatives in Development

README

Lab Agent

**本科生科研选题平台。给出候选题目,并用真实文献计数判断前人做到哪一步。**

AI 能力不自带 —— 把你本机已装的 agent(pi / Claude Code / Codex / OpenCode / Hermes) 当作**纯 LLM 补全后端**:发一段 prompt、收一段文本,判断权归平台。

它为什么不是又一个 AI 科研工作台:模型对「这个方向有没有人做过」完全不可靠, 它会自信地说「研究较少」却拿不出依据。本项目把该判断换成可复核的 OpenAlex 计数。 对照 [Open Science Desktop](https://github.com/ai4s-research/open-science)、 [Open Science](https://github.com/aipoch/open-science) 这类通用工作台 —— 它们信任模型的判断并产出文档,这里不信任。


为什么能这么做:ACP

[Agent Client Protocol](https://agentclientprotocol.com/)(Zed 主导,JetBrains 跟进, 30+ agent 实现)是「agent 界的 LSP」:JSON-RPC 2.0 over stdio,客户端把 agent 当子进程拉起。

接一个新 agent 因此不是「写一个适配器」,而是「配一条命令」。

Agent ACP 入口 类型
pi npx -y pi-acp 社区适配器
Claude Code npx -y @zed-industries/claude-code-acp Zed 官方适配器
Codex npx -y @agentclientprotocol/codex-acp Zed 官方适配器
OpenCode opencode acp 原生
Hermes hermes acp 原生(Python acp_adapter)
Gemini CLI gemini --acp 原生

平台做 ACP **client**;agent 做 ACP **server**。生命周期: `initialize` → `session/new(cwd)` → `session/prompt` → `session/update` 流式通知 → `session/cancel`。

ACP 能力 平台拿到什么
initialize 统一接口:一套代码驱动 6 家 agent,零差异
session/new 回传 models 复用用户自己的模型与 key(pi 实测 60 个)
session/update 流 正文 / 思考链 / 工具调用过程可视化
session/set_model / set_config_option / set_mode 模型与思考强度由平台切
session/cancel 中途中止

不用 ACP 的代价:得给每家 agent 写一套适配(claude `-p --output-format stream-json`、 pi `--mode rpc`、opencode HTTP 4096、codex `exec --json`、hermes TUI gateway)—— 五套协议、五份解析,agent 一升版就可能坑。

ACP 给不了什么(重要)

**协议里没有任何字段能声明「这一轮不要用工具」。** `allowedTools`、`toolChoice`、 `system` 在 schema 里全部不存在(已逐字搜索确认)。`clientCapabilities.fs` 设 false 只能阻止 agent 回调平台,挡不住它用自己的 Read/Write/Bash 动手。

所以「当补全后端」在协议层拿不到保证。平台能做的:拒绝一切越权委派请求、 把最保守的 mode 传给 agent、在 prompt 里明确要求。**挡不住的部分如实写在 UI 上**, 不假装自己是安全闸门。`presets.mjs` 的 `builtinTools` 记录哪个 agent 有这个能力。

**协议里也没有超时。** SDK 零 timer,每个 deadline 都得自己建。


写入隔离:不碰你的 agent 目录

平台 spawn age