Skip to content

zhangpei03/devagent

Repository files navigation

DevAgent CLI

一个运行在本地终端中的 AI 编程 Agent,能够读取项目上下文、拆解开发任务、调用工具修改代码、执行命令验证结果,并在权限边界内完成可审计、可回滚的开发闭环。

快速开始

环境要求

  • Node.js >= 20
  • pnpm >= 9

安装

cd ~/devagent
pnpm install
pnpm build

配置

DevAgent 通过环境变量配置,支持任何 OpenAI 兼容的 API 端点。

# 必需
export DEVAGENT_API_KEY="your-api-key"

# 可选(有默认值)
export DEVAGENT_API_BASE="https://api.deepseek.com/v1"  # API 地址
export DEVAGENT_MODEL="deepseek-chat"                    # 模型名称

支持的模型服务:

服务 API Base 模型示例
DeepSeek https://api.deepseek.com/v1 deepseek-chat, deepseek-reasoner
OpenAI https://api.openai.com/v1 gpt-4o, o3-mini
Claude (via OpenRouter) https://openrouter.ai/api/v1 anthropic/claude-sonnet-4
本地 Ollama http://localhost:11434/v1 llama3, qwen2.5
其他兼容端点 自定义 自定义

也可以创建 .env 文件(已在 .gitignore 中):

# ~/devagent/.env
DEVAGENT_API_KEY=sk-xxxxx
DEVAGENT_API_BASE=https://api.deepseek.com/v1
DEVAGENT_MODEL=deepseek-chat

启动

# 开发模式(推荐,无需每次 build)
pnpm dev

# 或构建后运行
pnpm build
node packages/cli/dist/index.js

使用方式

交互模式(REPL)

pnpm dev

进入交互界面后直接输入任务:

devagent> 解释这个项目的目录结构
devagent> 帮我修复 src/utils/parser.ts 中的 bug
devagent> 运行测试并修复失败的用例
devagent> 给 UserService 添加分页功能

命令行参数

# 指定模型
pnpm dev -- -m deepseek-reasoner

# 指定 API 地址
pnpm dev -- --api-base https://api.openai.com/v1

# 权限模式
pnpm dev -- --permission-mode auto_low

# 查看帮助
pnpm dev -- --help

内置命令

命令 说明
/exit/quit 退出
/state 查看当前会话状态(轮次、消息数、上下文使用率)

权限模式

DevAgent 对所有副作用操作进行权限控制。

三种模式

模式 说明
strict(默认) 所有写操作都需要确认
auto_low 低风险操作自动允许,高风险需确认
yolo 全部自动允许(慎用)

风险等级

等级 工具 行为
无风险 read_file, list_files, search_code, git_status 始终允许
低风险 run_command(只读命令如 ls, git log auto_low 模式自动允许
高风险 write_file, edit_file, run_command(一般命令) 需要用户确认
极高风险 run_commandrm -rf, sudo, git push --force 始终需要确认,建议拒绝

权限确认界面

当 Agent 需要执行高风险操作时:

  ⚠ Permission required [high]
    Modifying file: /path/to/file.ts

? Allow this action?
❯ Allow once
  Always allow this session
  Deny

工具清单

DevAgent 内置 7 个核心工具:

工具 说明
read_file 读取文件内容(带行号)
write_file 写入/创建文件
edit_file 搜索替换编辑文件
list_files 按 glob 模式列出文件
search_code 用正则搜索代码(ripgrep)
run_command 执行 Shell 命令
git_status 查看 Git 状态/diff/log

项目记忆文件(AGENTS.md)

在项目根目录创建 AGENTS.md,Agent 会自动加载其中的规则:

# AGENTS.md

## 项目规则
- 使用 pnpm,不使用 npm
- API 返回格式统一为 { code, message, data }
- 修改接口后必须补充测试

## 常用命令
- pnpm dev    启动开发服务器
- pnpm test   运行测试
- pnpm build  构建项目

## 架构说明
- src/api     后端接口
- src/lib     核心逻辑
- src/components  UI 组件

Agent 会将这些信息注入系统提示词,确保行为符合项目规范。

Checkpoint(回滚)

每次文件修改前,DevAgent 会自动将原文件备份到 .devagent/checkpoints/ 目录。

如果修改出错,可以手动恢复:

# 查看备份
ls .devagent/checkpoints/

# 恢复文件
cp .devagent/checkpoints/1715500000000-a1b2c3d4-parser.ts src/utils/parser.ts

项目结构

devagent/
├── packages/
│   ├── shared/            # 核心类型定义与工具函数
│   ├── tool-system/       # 工具注册、执行、Schema 转换
│   ├── permission-engine/ # 风险评估、策略引擎、权限接口
│   ├── context-manager/   # Checkpoint、AGENTS.md、上下文压缩
│   ├── model-gateway/     # OpenAI 兼容 API 客户端(流式)
│   ├── agent-runtime/     # 核心 Agent 循环
│   └── cli/               # 终端入口、REPL、渲染器
├── package.json
├── pnpm-workspace.yaml
└── tsconfig.base.json

开发

# 安装依赖
pnpm install

# 构建所有包
pnpm build

# 清理构建产物
pnpm clean

# 开发模式运行 CLI
pnpm dev

单独构建某个包

pnpm --filter @devagent/tool-system build
pnpm --filter @devagent/agent-runtime build

典型使用场景

理解陌生代码

devagent> 这个项目是做什么的?核心模块有哪些?

修复 Bug

devagent> npm test 有失败的用例,帮我修复

实现功能

devagent> 给用户列表加上按部门筛选的功能

代码审查

devagent> 审查最近的 git diff,找出潜在问题

生成测试

devagent> 为 src/services/auth.ts 生成单元测试

注意事项

  1. API Key 安全 — 不要将 key 提交到代码仓库,使用环境变量或 .env 文件
  2. 工作目录 — 在目标项目目录下启动 DevAgent,它会以当前目录为上下文
  3. 权限控制 — 生产环境建议使用 strict 模式,避免误操作
  4. 上下文窗口 — 长对话会自动压缩,如果响应变慢可以重启会话
  5. Checkpoint — 文件修改前自动备份,但建议重要修改前先 git commit

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors