yicoclaw
v3.2.12
Published
yicoclaw - AI Agent Workspace
Downloads
4,989
Readme
AI Agent Workspace
AI 对话工作台,支持多模型切换、自定义模型管理、Markdown 渲染及技能管理。
功能特性
- 多模型支持:支持预置模型和自定义模型配置
- 流式对话:实时流式输出,打字机效果
- 模型管理:可视化配置自定义模型(API Key、地址等)
- 技能管理:上传和管理技能包
- 用户认证:基于用户名密码的登录系统
- Markdown 渲染:支持代码高亮、表格等 GFM 扩展
技术栈
- Framework: Next.js 16 (App Router)
- Core: React 19pn
- Language: TypeScript 5
- UI 组件: shadcn/ui (基于 Radix UI)
- Styling: Tailwind CSS 4
- LLM SDK: coze-coding-dev-sdk
快速开始
1. 安装依赖
pnpm install2. 启动开发服务器
pnpm dev服务将在 http://localhost:5000 上运行。
3. 访问应用
打开浏览器访问 http://localhost:5000
默认登录账号:
- 用户名:
admin - 密码:
admin123
CLI 命令行工具
安装
# 从源码安装
cd packages/yicoclaw
pnpm install && pnpm build && npm link命令
| 命令 | 描述 |
|------|------|
| yicoclaw install | 安装并配置 CLI |
| yicoclaw install --port 5000 | 指定默认端口 |
| yicoclaw install --skills /path | 指定技能存放路径 |
| yicoclaw install --yes | 使用默认配置 |
| yicoclaw start | 启动服务 |
| yicoclaw start --port 9527 | 指定端口启动 |
| yicoclaw doctor | 检查安装状态 |
配置文件
安装后,用户配置保存在 ~/.yicoclaw/config.json:
{
"defaultPort": 5000,
"skillsPath": "/home/user/.yicoclaw/skills",
"installPath": "/path/to/project"
}配置说明
config.json 结构
{
"app": {
"name": "AI Agent Workspace",
"version": "1.0.0"
},
"auth": {
"enabled": true,
"users": [
{
"username": "admin",
"password": "admin123",
"role": "admin"
}
],
"sessionTimeout": 86400
},
"fileOperations": {
"enabled": true,
"allowedPaths": ["${COZE_WORKSPACE_PATH}", "/tmp"],
"maxFileSize": 10485760,
"allowedFileTypes": [".txt", ".md", ".json", ".js", ".ts"]
},
"skills": {
"enabled": true,
"skillsPath": "/workspace/projects/skills",
"allowedOperations": ["create", "read", "update", "delete"]
},
"modelSelection": {
"mode": "manual",
"defaultModel": "custom-glm-4-001",
"customModels": [
{
"id": "custom-glm-4-001",
"name": "GLM-4",
"modelName": "glm-4",
"apiKey": "your-api-key",
"baseUrl": "https://open.bigmodel.cn/api/paas/v4",
"description": "智谱大模型"
}
]
}
}添加自定义模型
在左侧菜单点击「模型管理」,添加自定义模型:
| 字段 | 说明 | |------|------| | 模型显示名称 | 界面中显示的名称 | | OpenAI 模型名称 | API 调用的实际模型名 | | API Key | 模型的 API 密钥 | | API URL | API 基础地址 |
API 接口
用户登录
POST /api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "admin123"
}流式聊天
POST /api/chat/stream
Content-Type: application/json
{
"message": "用户消息",
"modelId": "custom-glm-4-001",
"history": [
{ "role": "user", "content": "历史消息" },
{ "role": "assistant", "content": "历史回复" }
]
}文件操作
POST /api/files
Content-Type: application/json
{
"action": "create|read|update|delete|list",
"filePath": "/path/to/file.txt",
"content": "文件内容"
}技能上传
POST /api/skills/upload
Content-Type: multipart/form-data
file: 技能包文件 (.zip, .tar.gz)开发指南
# 开发模式
pnpm dev
# 构建生产版本
pnpm build
# 启动生产服务
pnpm start
# 代码检查
pnpm lint
pnpm ts-check项目结构
├── src/
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── login/ # 登录页面
│ │ ├── page.tsx # 主页面
│ │ └── layout.tsx # 根布局
│ ├── components/ # 组件
│ │ ├── sidebar.tsx # 侧边栏
│ │ ├── chat-page.tsx # 对话页面
│ │ ├── models-page.tsx # 模型管理
│ │ └── skills-page.tsx # 技能管理
│ └── lib/ # 工具库
├── packages/
│ └── yicoclaw/ # CLI 工具
├── public/ # 静态资源
├── config.json # 配置文件
└── skills/ # 技能存储安全注意事项
- API Key 安全:不要将包含真实 API Key 的 config.json 提交到版本控制
- 文件操作权限:配置
allowedPaths限制可操作的目录 - 文件类型限制:配置
allowedFileTypes限制可创建的文件类型 - 文件大小限制:配置
maxFileSize防止创建过大文件
