boardx / boardx/workspacex

chat:agent 运行中无法回复(A/B 追问发不出)+ 插话文本被渲染成 agent 正文

Open
#2,808 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 现象(devapp 实测,2026-09-06 人类反馈)

1. agent 在回复里问「回复 A 或 B」,随后继续调工具(run 仍在 `running`)。用户在主 composer 敲「B」发不出去:发送键是「停止」、Enter 无响应、页脚「Agent 正在处理上一条消息,请稍候…」。人类原话:**要改为可以回复 A/B,就算 agent 还在生成**。
2. 用户的「B」出现在了 **assistant 气泡正文里**(第二张截图),看起来像 agent 自己说了「B」。

## 根因

- 前端 `copilotkit-v2-panel-body.tsx` 把 `agent.isRunning` 当发送禁用理由;既有的中途插话链路(#2756,`POST /agent-runs/:runId/interject`)只挂在进度指示下方一个独立小框里,主 composer 没接。
- 后端 `deep-agent-model-provider.ts` `tryStreamRun` 的 messages-tuple 分支不看 chunk `type`,图里任何节点追加的消息(含 `harness.py` `InterjectionMiddleware` 注入的 `HumanMessage`)都被当模型 token 喂给 `onDelta`。

## 处置

见关联 PR(ad-hoc 直接交办,按 `.harness/instructions/ad-hoc-fix-pr-sop.md` 走 `Refs`)。

已知边界:插话不落库为 chat 消息(`interject-run.ts` 只写内核账本),前端本地回显刷新后会消失——后端插话链路今天的边界,本次不补。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with copilotkit-v2-panel-body.tsx and trace how the main composer handles agent.isRunning and the existing POST /agent-runs/:runId/interject flow from #2756. Then inspect deep-agent-model-provider.ts and tryStreamRun, along with the messages-tuple chunks and InterjectionMiddleware behavior. Done means A/B replies can be sent while a run is active and injected human messages are not rendered as assistant text.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.