- 页面从 11 页缩减为 9 页,三个独立产品源码页合并为一张行业对比表 - 四个演示页说明文字重写:每页说清和上一级的区别、机制为什么相同 - 开场从 AiWork vs Codex 具体现象切入,工具页从 fs.readFileSync 引入契约层 - Loop 基本逻辑页说明这是真实可跑的原型,解释 await runTool 卡住的是什么 - 结尾页改为「收件箱统一三条路径」,回扣到 AiWork 的立即插入 - 新增 CompareSlide 组件,对比 AiWork / Codex / Claude Code / OpenAI Responses API - 删除 ProductSlide 配置式组件,改为独立页面 - 关键事件卡片加标题标签,补 mode-tabs 激活态和 compare-table 样式 - 删除 explainers/ 下四个旧文件 - 更新 README.md 和 async-agent-lab/README.md
38 lines
2.0 KiB
Markdown
38 lines
2.0 KiB
Markdown
# Agent 为什么能边问边做
|
||
|
||
约 30 分钟内部技术分享的演示站。四个递进级别,每级只改一件事,每次都能在请求时序里看到变化的那个点。
|
||
|
||
## 启动
|
||
|
||
需要 Node.js 24 和 pnpm。复制 `.env.example` 为 `.env.local`,填入 `EASTMONEY_API_KEY`:
|
||
|
||
```bash
|
||
pnpm install --frozen-lockfile
|
||
pnpm start
|
||
```
|
||
|
||
打开 [http://127.0.0.1:8791/](http://127.0.0.1:8791/)。用左右方向键或底部按钮翻页,点「全屏」进入投屏模式。
|
||
|
||
## 四个演示级别
|
||
|
||
每个演示页可以切换「源码与说明」和「现场运行」两种模式。运行时左侧显示对话和问答交互,右侧显示事件轨迹。
|
||
|
||
- **第 1 级·同步 Bash**:沿 `tool_call_id` 从 Bash 返回追到下一次请求,观察两次请求之间的空白。
|
||
- **第 2 级·后台 Bash**:沿 `job_1` 看启动回执、进程退出、完成通知进入请求。测试跑着,模型继续工作。
|
||
- **第 3 级·阻塞提问**:让问题卡停几秒,观察请求数不动。提交后核对请求里的 `tool` 消息。
|
||
- **第 4 级·异步提问**:先别答,看取证请求继续出现。答完两道题后打开 `weekly-report.md`,核对两份答案各自进了哪段。
|
||
|
||
## 取证与网关
|
||
|
||
取证用上海时间的本周工作日范围。读取 Codex 和 OpenCode 的本地会话数据库及 DSH 会话缓存,按 Git common directory 归并 worktree。默认以本机 AiWork 仓库的 `git config user.email` 过滤作者。可通过 `AIWORK_REPO` 指定路径,通过逗号分隔的 `WEEKLY_AUTHOR_EMAILS` 指定作者邮箱。每次运行的独立目录在 `.runs/`,周报写入该次运行目录。
|
||
|
||
请求走东财 AI 网关,模型为 `DeepSeek-V4.1-Flash-1017`(OpenAI Chat Completions 流式接口)。网关对单个令牌限速 50 次/分钟,不要并发开多个演示。
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
pnpm server # 仅启动后端(端口 8791)
|
||
pnpm dev # 仅启动 Vite 开发服务器(端口 5178,代理至 8791)
|
||
pnpm typecheck
|
||
```
|