Skip to content

Repository files navigation

MedCode

面向消费医疗研发任务演练的终端 AI Coding Agent

项目简介

面向消费医疗研发任务演练场景,设计并实现本地终端 AI Coding Agent,支持在工作区内连续完成代码检索、逻辑理解、修改方案生成与结果汇总

MedCode 是一个轻量、可控、易于扩展的终端编码助手,深度借鉴 Claude Code 的核心设计思路(多步工具循环、权限审批、会话持久化、Skills 与 MCP 扩展),用更精简的实现复刻了「模型 → 工具 → 模型」的完整执行闭环。项目以「保持架构清晰、可读、可扩展」为目标,不追求臃肿的平台级功能。

核心能力

围绕「检索 → 理解 → 生成 → 汇总」的研发任务演练流程:

  • 代码检索:内置 list_files / grep_files / read_file 等工具,配合 /ls/grep/read 本地命令,在工作区内快速定位代码与业务逻辑。
  • 逻辑理解:分层指令记忆(MED.md / CLAUDE.md / .med-code/rules/*.md),结合 provider 用量驱动的上下文记账,让模型在长会话中持续理解项目与领域逻辑。
  • 修改方案生成model → tool → model 多步循环,通过 write_file / edit_file / patch_file / modify_file 生成并落地修改,改动前以 unified diff 形式 review 审批。
  • 结果汇总:会话按工作目录持久化(JSONL),支持 /compact/collapse/snip 三种上下文压缩,超大工具结果自动落盘并以预览形式回填,保证长任务结果清晰可回溯。

特性

  • 多步工具执行循环:单回合内连续执行 model → tool → model,无需离开终端。
  • 全屏终端界面(TUI):输入历史、transcript 滚动、斜杠命令菜单、审批选择与反馈输入。
  • 会话持久化:每回合自动保存,支持 /resume/rename/new/fork/compact,30 天自动过期清理。
  • 权限与安全:文件修改 review-before-write、路径与命令权限检查、拒绝后向模型反馈。
  • 分层指令记忆MED.md / CLAUDE.md 三层加载、@include 引用、内容去重、容量限制。
  • 本地 Skills:通过 SKILL.md 发现并加载可复用工作流。
  • MCP 动态挂载:stdio 与 streamable-http 协议,Content-Length / newline-json 自动协商,工具 / 资源 / 提示统一挂载。
  • 上下文管理:provider 用量记账、auto-compact、context collapse(投影层摘要)、snip compact(确定性中段裁剪)。
  • 大工具结果落盘:超大输出保存到本地数据目录,上下文只保留预览与文件路径。
  • Anthropic 风格 API 兼容:支持自定义 ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY

快速开始

依赖 Node.js 环境(建议 LTS 版本)。

cd med-code
npm install
npm run install-local   # 交互式安装,生成全局 `medcode` 启动器

安装过程中会引导配置:

  • 模型名称(ANTHROPIC_MODEL
  • ANTHROPIC_BASE_URL
  • ANTHROPIC_AUTH_TOKEN

配置保存在 ~/.med-code/settings.json~/.med-code/mcp.json,可用 MED_CODE_HOME 覆盖配置目录、MED_CODE_BIN_DIR 覆盖启动器目录。

启动:

medcode          # 交互式终端
npm run dev      # 开发模式直接运行
MED_CODE_MODEL_MODE=mock npm run dev   # 离线演示模式

命令速览

管理命令(终端直接执行):

medcode mcp list | add | login | logout | remove
medcode skills list | add | remove

交互式斜杠命令/help/tools/status/model [name]/skills/mcp/config-paths/permissions/init/memory/resume [id]/rename/new/fork/compact/collapse/snip/exit 等。

CLI 参数medcode --resume [id]medcode --fork <id>

完整用法见 USAGE.md

项目结构

src/
├── index.ts              CLI 入口
├── agent-loop.ts         多步模型/工具循环
├── tty-app.ts            全屏终端应用
├── tool.ts               工具注册与执行
├── skills.ts             本地 Skill 发现与加载
├── mcp.ts                MCP 客户端与动态工具挂载
├── session.ts            会话 JSONL、resume/fork/rename、过期清理
├── permissions.ts        权限管理与审批
├── memory.ts             分层指令记忆加载
├── config.ts             运行时配置
├── install.ts            交互式安装器
├── manage-cli.ts         medcode mcp / skills 管理命令
├── compact/              自动压缩、上下文折叠、snip compact
├── tools/                内置工具
├── tui/                  终端 UI 模块
└── utils/                上下文记账、token 估算、大结果落盘

相关文档

开发

npm run check   # 类型检查(tsc --noEmit)
npm run lint    # ESLint
npm test        # 测试

许可证

MIT

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages