# os 原则与核心概念

## 模板（原则）

### 设计目标

- <目标 1>
- <目标 2>

### 契约原则

- <输入/输出契约规则>

### 安全与边界

- <访问约束/护栏>

### 失败与恢复

- <调用失败时的行动>

### 术语表

- <该工具集特有术语>

## 核心概念

### 1. Shell 命令执行

Shell 命令执行允许智能体运行系统命令来完成各种任务。

**特点：**

- 同步执行：命令完成后返回输出
- 错误处理：返回 exit code 和错误信息
- 输出捕获：捕获 stdout 和 stderr

### 2. 守护进程管理

守护进程（Daemon）是在后台持续运行的进程。

**操作：**

- 启动守护进程
- 停止守护进程
- 获取守护进程输出

### 3. 环境变量管理

环境变量是影响进程行为的系统变量。

**操作：**

- 读取环境变量
- 设置环境变量
- 删除环境变量

## 工具概览

| 工具              | 功能             |
| ----------------- | ---------------- |
| shell_cmd         | 执行 Shell 命令  |
| stop_daemon       | 停止守护进程     |
| get_daemon_output | 获取守护进程输出 |
| env_get           | 获取环境变量     |
| env_set           | 设置环境变量     |
| env_unset         | 删除环境变量     |

## 最佳实践

### 1. Shell 命令安全

- **验证输入**：使用参数化命令避免注入
- **使用明确路径**：避免相对路径歧义；Windows 下优先用正斜杠路径
- **检查权限**：确保有足够权限执行命令

### 2. 进程管理

- **记录 PID**：保存进程 ID 便于管理
- **优雅停止**：使用 SIGTERM 而非 SIGKILL
- **输出监控**：定期检查守护进程输出

### 3. 环境变量

- **敏感信息**：不要在环境变量中存储密码
- **前缀规范**：使用项目特定前缀避免冲突
- **文档化**：记录重要环境变量的用途

## 限制与注意事项

1. Shell 命令执行可能有安全隐患，请谨慎操作
2. 某些系统命令可能需要特定权限
3. 环境变量修改仅对当前进程有效
