# Agent Worker 代码修改指南

## 📁 文件位置

```
livekit-agents/
├── agent.py              # ← 主代码（实时同步到容器）
├── docker-compose.yml    # 服务配置
├── Dockerfile.agent      # 镜像构建
└── skills/               # 技能模块（可选）
```

---

## 🔄 修改代码后重启

**方式一：重启容器**
```bash
docker compose restart agent-worker
```

**方式二：查看日志**
```bash
docker compose logs -f agent-worker
```

**方式三：进入容器调试**
```bash
docker exec -it agent-worker bash
python agent.py test
```

---

## 📝 常用修改场景

### 1. 添加新的 Agent 类型

编辑 `agent.py`，在 `AGENT_REGISTRY` 中注册：

```python
@register_agent("new_agent")
class NewAgent(DefaultAgent):
    """新 Agent 描述"""
    
    async def initialize(self, session):
        await super().initialize(session)
        self.system_prompt = "你的系统提示词"
    
    async def on_message(self, text: str) -> str:
        """处理用户消息"""
        return f"回复: {text}"
```

### 2. 修改 STT 处理逻辑

编辑 `FunASRWorklet` 类：

```python
class FunASRWorklet:
    async def process_chunk(self, audio_bytes: bytes) -> str:
        # 自定义处理逻辑
        pass
```

### 3. 修改路由规则

编辑 `RouterAgent.classify_intent()` 方法：

```python
def classify_intent(self, text: str) -> str:
    if "天气" in text:
        return "weather"
    elif "翻译" in text:
        return "translate"
    return "default"
```

### 4. 添加环境变量

编辑 `.env.dev`：

```bash
FUNASR_ENDPOINT=http://localhost:8080
HERMES_ENDPOINT=http://localhost:8642/v1
NEW_FEATURE_ENABLED=true
```

然后更新 `agent.py` 中的配置读取：

```python
NEW_FEATURE = os.environ.get("NEW_FEATURE_ENABLED", "false").lower() == "true"
```

---

## 🐛 常见问题

### Q: 修改代码后不生效？
```bash
# 强制重建容器
docker compose up -d --force-recreate agent-worker

# 查看最新日志
docker compose logs -f agent-worker
```

### Q: 依赖包需要更新？
```bash
# 修改 requirements.txt 后重建镜像
docker compose build agent-worker
docker compose up -d agent-worker
```

### Q: 如何添加新技能？
```bash
# 在 skills/ 目录创建新技能
mkdir -p skills/weather
echo 'print("weather skill")' > skills/weather/__init__.py

# 重启容器（已挂载 volumes）
docker compose restart agent-worker
```

---

## 🚀 完整修改流程

```bash
# 1. 编辑代码
vim agent.py

# 2. 重启容器
docker compose restart agent-worker

# 3. 查看日志
docker compose logs -f agent-worker

# 4. 测试功能
curl http://localhost:8640/health
```

---

## 📋 代码结构

| 类/函数 | 用途 | 可修改性 |
|---------|------|----------|
| `DefaultAgent` | 基础 Agent 类 | ✅ 可扩展 |
| `HostAgent` | 主持人 Agent | ✅ 修改问候语 |
| `AssistantAgent` | AI 助手 | ✅ 修改系统提示词 |
| `RouterAgent` | 意图路由 | ✅ 修改分类规则 |
| `FunASRWorklet` | STT 处理 | ✅ 修改端点/逻辑 |
| `entrypoint()` | 主入口函数 | ✅ 修改启动流程 |
