@atlisp/agent
v0.8.20
Published
Multi-Agent System for @lisp CAD operations
Downloads
331
Maintainers
Readme
@lisp Agent v0.8.18 — 多智能体 CAD 协作系统
基于 LangGraph 的多智能体(Multi-Agent)系统,为 @lisp CAD 环境提供 AI 驱动的自动化能力。
架构概览
TUI/Web ──── HTTP/WS Server ──── AgentManager ──── 21 Agents
│ │
LLM Providers ──┬── MCP Pool ── CAD │
│ │
AgentOps Dashboard Orchestrator · Workflow Engine · Plugin Registry智能体(Agent)一览(21个)
| Agent | 命令 | 功能 |
|-------|------|------|
| lisp-engineer | /code | AutoLISP 代码生成、函数推荐、测试、修复 |
| cad-designer | /design | CAD 环境设置、绘图执行、验证 |
| drawing-analyst | /analyze | 图纸数据提取、图片分析、报告 |
| knowledge-manager | /knowledge | 对话整理、代码归集、技能提炼 |
| diagnostics | /diagnose | CAD 环境检测、MCP/LLM 连接诊断 |
| code-reviewer | /review | 静态检查、AI 审查、CAD 编译测试 |
| drawing-comparator | /compare | 图纸比对、差异报告 |
| test-generator | — | 代码解析、测试生成、执行验证 |
| lsp-project | — | 项目文件管理、依赖分析 |
| lsp-optimizer | — | 代码性能优化、重构建议 |
| pipeline | — | 多步骤管道编排、批处理 |
| trigger | — | CAD 变更监控、事件触发 |
| webhook | — | Webhook 注册管理、事件回调 |
| data-integration | — | CSV/JSON 数据导入、字段映射 |
| collaborative-cad | — | 多用户协作、变更同步 |
| cad-subscription | — | CAD 订阅管理、变更通知 |
| cad-recorder | — | 操作录制回放、教学演示 |
| bim-exporter | — | BIM 数据导出、IFC 转换 |
| cad-template-market | — | 模板搜索下载、市场管理 |
| cad-instance-manager | — | 多 CAD 实例发现、连接、健康监控、跨实例并行任务 |
| code-assistant | — | AutoLISP 代码分析、补全、格式化、文档查询、审查 |
快速开始
npm install && npm run build
node dist/index.js # 首次运行自动配置向导
node dist/index.js chat # TUI 模式(自动调度)
node dist/index.js code "..." # 直呼特定 Agent
node dist/server.js # HTTP 服务(含 Web UI)
# Web UI 默认地址: http://localhost:3000
# AgentOps 仪表盘: http://localhost:3000/agentops
# 工作流编辑器: http://localhost:3000/workflow-editor
# 管理后台: http://localhost:3000/adminWeb UI
基于 WebSocket 的浏览器界面,无需终端:
功能:
- 实时对话、Agent 切换、消息队列
- DWG 预览(SVG 渲染)、导出
- MCP 工具面板(分类搜索、参数填写、执行)
- 知识库搜索、工作流列表、会话管理
- Token 用量统计、Agent 状态指示
- 多语言支持(中文/English)— 右上角切换
HTTP API
| 端点 | 方法 | 说明 |
|------|------|------|
| /chat | POST | 自动调度对话 |
| /agent/:type | POST | 指定 Agent 执行 |
| /agents | GET | 列出所有 Agent |
| /sessions | GET/DELETE | 会话管理 |
| /knowledge | GET | 知识库搜索 |
| /workflows | GET/POST | 工作流管理 |
| /workflows/:id/run | POST | 执行工作流 |
| /tools | GET | MCP 工具列表 |
| /usage | GET | Token/Agent 用量统计 |
| /health | GET | 健康检查 |
| /mcp-status | GET | MCP 连接状态 |
| /agentops/data | GET | AgentOps 仪表盘数据 |
| /approvals | GET | 待审批的高风险操作列表 |
| /approvals/:id | POST | 批准/拒绝审批({approved:true\|false}) |
| /api/v1/admin/* | — | 管理后台 API(需本机直连或 admin token) |
| /i18n/:lang.json | GET | 国际化翻译文件 |
| /batches | GET | 批量任务列表 |
| /admin | GET | 管理后台页面 |
| /workflow-editor | GET | 可视化工作流编辑器 |
| /agentops | GET | AgentOps 仪表盘页面 |
主要功能
AgentOps 仪表盘
GET /agentops — 实时监控所有 Agent / LLM / MCP 调用统计。
指标:调用次数、Token 消耗、成功率、延迟分布。
可视化工作流编辑器
/workflow-editor — 拖拽式多 Agent 工作流编排。
支持 YAML/JSON 定义、分支/循环/并行执行、手动/触发模式。
函数库智能推荐
根据自然语言需求自动推荐 @lisp 函数,集成到 lisp-engineer 工作流。
Code Interpreter
在 CAD 内安全执行 AutoLISP 代码:危险函数检测、括号/引号匹配、超时控制。
多模态支持
DWG 元数据提取(MCP)、图片上传分析(Base64 → LLM)。
插件与 Skill 系统
- Plugin Registry: 第三方插件搜索、安装、管理
- Skill Hub: 远程技能包搜索、安装、自动更新
高风险操作人工审批(Human-in-the-loop)
agent.interactionMode(或环境变量 CREW_INTERACTION_MODE)三种模式:
| 模式 | 行为 |
|------|------|
| auto(默认) | 直接执行,兼容既有行为 |
| confirm | 破坏性工具(delete_entity/purge_*/save_dwg…)与代码执行工具(eval_lisp/at_command…)需人工批准 |
| dry-run | 高风险工具返回预览结果,不实际执行 |
confirm 模式下服务端向所有 WebSocket 客户端广播 approval_request,客户端可回
{type:'approve_tool', id, approved} 或调用 POST /approvals/:id;超时(默认 5 分钟,
agent.approval.timeoutMs 可调)自动拒绝。工具集可经 agent.approval 扩展:
extraDestructive / extraCodeExec / exemptTools。
Agent 黄金评估(Evals)
npm run eval # 离线:mock LLM + Mock MCP 驱动完整 agent 图,行为回归门禁(CI 已接入)
npm run eval:live # 真实 LLM 质量评估(需要可用凭据)任务集位于 eval/tasks.json,报告输出 eval/last-report.json。
Skill / Plugin 版本兼容
manifest 与 SKILL.md frontmatter 支持 minAgentVersion / maxAgentVersion(semver)。
安装不兼容的包会被拒绝(ignoreCompat: true 可强制),不兼容的技能加载时跳过并告警。
结构化错误处理
AppError基类 →McpError/LlmApiError/AgentError/ConfigError/SessionError- 自动错误分类、
isRetryableError()判断是否可重试
国际化
/i18n/:lang.json — 支持 zh-CN / en-US,Web UI 右上角一键切换。
后端 API src/i18n/ 提供 t() / tn() 翻译函数。
测试框架
- Agent 测试台(输入/输出断言、模拟 LLM/MCP)
- CI/CD 自动化测试 (
npm test)
配置
~/.atlisp/agent.json(自动生成),支持多模型命名配置与 .env 覆盖:
{
"version": 1,
"agent": {
"verbose": false,
"maxIterations": 5,
"mode": "sequential",
"interactionMode": "auto",
"teams": { "cad-designer": { "maxIterations": 20 } }
},
"llm": {
"default": "cloud",
"planModel": "cloud",
"fallback": "deepseek",
"temperature": 0.1,
"maxTokens": 65536,
"models": {
"cloud": { "provider": "openai", "baseURL": "http://localhost:11434/v1", "model": "glm-5.2:cloud" },
"deepseek": { "provider": "deepseek", "baseURL": "https://api.deepseek.com", "model": "deepseek-v4-flash" }
}
},
"mcp": {
"default": "local",
"servers": [
{ "id": "local", "mode": "streamable-http", "url": "http://localhost:8110", "priority": 1 }
]
},
"embedding": { "enabled": false, "provider": "ollama", "model": "nomic-embed-text" }
}| 环境变量 | 说明 | 默认值 |
|----------|------|--------|
| LLM_CACHE | 启用 LLM 响应缓存 | true |
| LLM_CACHE_TTL | 缓存 TTL (ms) | 3600000 |
| AGENTOPS_ENABLED | 启用 AgentOps 仪表盘 | true |
项目结构
src/
├── server.js # HTTP 服务(Express + WebSocket)
├── agent-manager.js # Agent 调度中心
├── llm.js # LLM 抽象层(缓存、重试)
├── mcp-client.js / mcp-pool.js # MCP 连接管理
├── config.js # 配置加载
├── errors.js # 结构化错误类(AppError 等)
├── i18n/ # 国际化(zh-CN / en-US)
├── agentops/ # AgentOps 遥测(collector + dashboard)
│ ├── collector.js # 数据采集器
│ └── dashboard.js # HTTP API + HTML 仪表盘
├── agents/ # 21 个智能体实现
├── routes/ # API 路由
├── tools/ # MCP 工具、函数推荐、代码解释器
├── providers/ # LLM 提供商(openai/deepseek/anthropic/...)
├── shared/ # 提示词模板、工具描述
├── registry/ # 插件注册表、安装器
├── test/ # 测试台 + CI
└── web/ # Web UI(HTML/JS/CSS)
├── index.html / app.js / style.css
├── agentops.html / admin.html / workflow-editor.html
└── i18n.js # 浏览器端 i18n 加载器服务端部署
# Docker(镜像内服务监听 8211,非 root 运行,带 /health 健康检查)
docker build -t atlisp-agent .
docker run -d -p 8211:8211 \
-e CREW_API_KEY=<你的全局密钥> \
-v atlisp-data:/home/appuser/.atlisp \
atlisp-agent
# 裸机:默认 0.0.0.0:8211,可配 CREW_PORT / CREW_HOST /
# CREW_API_KEY(全局) / agent.interactionMode(auto|confirm|dry-run)
node dist/server.js认证方式三选一(配置 CREW_API_KEY 后生效):全局 key、登录会话 token、用户 API key
(POST /api/v1/admin/users/:id/api-key 生成;仅 admin 角色 key 或非本机访问持 admin token 可用管理 API)。
技术栈
- 运行时: Node.js 18+
- TUI: Ink v7 + React 19
- Web: 原生 HTML/JS/CSS + WebSocket
- AI: LangGraph / LangChain
- LLM: OpenAI / DeepSeek / Anthropic / Ollama / vLLM / Gemini
- CAD 通信: MCP (
npx @atlisp/mcp) - 构建: esbuild
- 测试: vitest
许可
ISC
