Skip to content

Repository files navigation

CLI Agent

一个轻量级的 CLI Agent 实现,基于 Anthropic SDK 的 ReAct 架构,不依赖 LangChain 等重型框架。

特性

  • ReAct 架构 - 完整的 Think → Action → Observation 循环
  • Anthropic SDK - 原生支持 Claude 模型和 Extended Thinking
  • 命令白名单 - 安全执行,支持用户确认和自定义白名单
  • 跨会话记忆 - JSON 持久化存储,自动保存对话历史
  • REPL 交互 - 友好的命令行交互界面

安装

# 克隆项目
git clone https://github.com/yourusername/cli-agent.git
cd cli-agent

# 安装依赖
uv sync

配置

创建 config.json 文件:

{
  "api": {
    "base_url": "https://api.anthropic.com/v1",
    "api_key": "your-api-key",
    "model": "claude-sonnet-4-20250514"
  },
  "extended_thinking": {
    "enabled": false,
    "budget_tokens": 10000
  },
  "allowed_commands": ["python", "dir", "type", "git"]
}

配置说明

字段 说明
api.base_url API 地址(支持 OpenAI 兼容接口)
api.api_key 你的 API Key
api.model 使用的模型
extended_thinking.enabled 是否启用 Extended Thinking
allowed_commands 白名单命令,无需确认直接执行

使用

# 启动 CLI Agent
uv run python main.py

REPL 命令

命令 说明
/help 显示帮助信息
/status 显示当前会话状态
/new 创建新会话
/quit 退出程序

示例对话

You: 帮我创建一个 hello.py 文件
You: 执行 python hello.py
You: 列出当前目录文件

项目结构

cli-agent/
├── main.py              # REPL 入口
├── agent.py             # ReAct Agent 核心
├── config.py            # 配置管理
├── prompt.py            # Prompt 模板
├── tools/               # 工具模块
│   ├── base.py          # 工具基类
│   └── bash_tool.py     # Bash 工具
├── memory/              # 记忆系统
│   └── session_memory.py
├── sessions/            # 会话存储
├── docs/                # 设计文档
└── config.json          # 用户配置(不上传)

与 LangChain 实现对比

方面 LangChain 本项目
LLM 调用 langchain-openai anthropic SDK
工具绑定 llm.bind_tools() 手动构造
消息格式 LangChain Message OpenAI 原生 dict
ReAct 循环 Agent 抽象 手动实现

开发

# 运行测试
uv run python -c "from agent import ReactAgent; print('OK')"

# 激活虚拟环境
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages