Skip to content

Add custom subagent logic - #1

Closed
Jake Broekhuizen (j-broekhuizen) wants to merge 1 commit into
langchain-ai:masterfrom
j-broekhuizen:jake/custom-subagents
Closed

Add custom subagent logic#1
Jake Broekhuizen (j-broekhuizen) wants to merge 1 commit into
langchain-ai:masterfrom
j-broekhuizen:jake/custom-subagents

Conversation

@j-broekhuizen

Copy link
Copy Markdown

No description provided.

@j-broekhuizen
Jake Broekhuizen (j-broekhuizen) deleted the jake/custom-subagents branch July 29, 2025 15:00
james8814 pushed a commit to james8814/deepagents that referenced this pull request May 3, 2026
CTO 第 8 次失误修复 — 5 天 CTO 工作全部未 git commit,由 pmagent 团队应用 ADR v5 langchain-ai#22
audit CTO sync claim 时 catch("我昨天已 sync" vs git status untracked)。

核心架构决策档案
- decisions/0002-fork-customization-strategy.md (ADR-0002 v3) — Plan H+ 三方签字 ACCEPTED
  - 含 ADR 评审 checklist v1+v2+v3+v4+v5(langchain-ai#1-langchain-ai#22 完整体)
  - v5 langchain-ai#22 fact-check 必须含对照实验(CTO 第 6 次失误 + pmagent 5 次同型失误沉淀)
  - v5 langchain-ai#20 角色权限边界 + langchain-ai#21 governance 边界
  - 含 CTO 6 次失误谱系 + 元层观察(langchain-ai#22 不强制纳入)

主设计文档
- 2026-05-02-plan-h-plus-final.md — Plan H+ v3 完整设计(含 src/agent_assembly/ namespace v3 修订)

历史方案档案(HISTORICAL/SUPERSEDED)
- 2026-04-29 ~ 2026-05-02 v1 → v4 → Plan H+ 演进 8 次方向探索
- spike/ 步骤 1+2 reference template

应用 ADR v5 langchain-ai#16 fact-check + langchain-ai#22 实证:
- git status untracked 实证已确认(pmagent v1.6 audit catch)
- 此 commit 修复 5 天工作未 commit 严重失误

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
james8814 pushed a commit to james8814/deepagents that referenced this pull request May 7, 2026
…arness __init__.py

🚨 Stage 0 ABORT response (pmagent cutover_dry_run.py --apply Attempt langchain-ai#1):

pmagent Stage 0 fork API readiness 设计 (ULTRATHINK 第 12 轮 design intent)
catch fork-side gap that CTO Track B 第 7 次 audit 漏掉:

❌ Pre-fix:
  from deepagents import _HarnessProfile          ← ✅ works (top-level alias)
  from deepagents.profiles import _HarnessProfile ← ❌ FAILS (pmagent 实际 path!)
  from deepagents.profiles.harness import _HarnessProfile ← ❌ FAILS

✅ Post-fix:
  3 import paths 全部 PASS

根因实证:
  Commit 76eedb0 message claim "alias inline in __init__.py"
  实际 alias 仅加到 deepagents/__init__.py (top-level)
  未加到 deepagents/profiles/__init__.py 和
        deepagents/profiles/harness/__init__.py

  pmagent _private_api_imports.py:117:
    from deepagents.profiles import _HarnessProfile  ← runtime ImportError pre-fix

修复:
  deepagents/profiles/__init__.py 末尾添加:
    _HarnessProfile = HarnessProfile  # A14 alias
    + 加入 __all__

  deepagents/profiles/harness/__init__.py 末尾添加:
    _HarnessProfile = HarnessProfile  # 防御性, 与 profiles/__init__.py 同模式
    + 加入 __all__

CTO Track B 第 7 次 audit 漏掉根因 (治理学习清单留痕):
  Track B 第 7 次仅 verify 了 `from deepagents import _HarnessProfile` (1 path)
  未 enumerate 所有可能 import paths (3 paths)

立规 §2.4 v2 boilerplate 升级 (本 incident 实证后):
  alias verify 必须 enumerate 所有可能 import paths:
    - from <pkg> import <alias>
    - from <pkg>.<subpkg> import <alias>
    - from <pkg>.<subpkg>.<subsubpkg> import <alias>

Track B 累积 8 次实证 (本次是 pmagent Stage 0 catch CTO 漏的 gap):
  9th/11th/12th: catch
  Path 3 论证: catch
  Path 3 transitive: confirm sound
  第 6 次: catch (_resolve_extra_middleware silent deletion)
  第 7 次: catch (A22 CLI test mock path)
  第 8 次: pmagent Stage 0 catch (A23 — CTO Track B 7 audit gap)

pmagent Stage 0 design 验证: ULTRATHINK 第 12 轮 design intent ROI 100%

A23 NEW 5 维度 (立规 §2.4 v2):
1. 发现内容: 3 import paths only 1 work (top-level), 2 missing
   (profiles + profiles.harness __init__.py 缺 alias)
2. 修复方式: 添加 _HarnessProfile = HarnessProfile + __all__ to 2 __init__.py
3. 来源轨道: pmagent Track B (Stage 0 catch design)
   双团队 Track B 协同实证 (CTO Track B 漏 gap, pmagent Track B catch)
4. 审计可追溯: pmagent Stage 0 ABORT report + post-fix 3 paths verify
5. 严重度: 🔴 RED → ✅ CLOSED (本 commit fix, immediate retry-able)

PMAGENT_SLA: ≤30 min atomic cutover (Stage 0 retry 可立即触发)

Refs:
- pmagent Stage 0 ABORT report (Attempt langchain-ai#1)
- CTO Track B 第 7 次 audit gap analysis
- 立规 §2.4 v2 boilerplate upgrade (enumerate all paths)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Yuchen Zhang (yuchenzhang) referenced this pull request in aihehuo/deepagents Jun 20, 2026
- Created detailed test report for wu_tanchang_api multi-turn dialog testing
- Confirmed Issue #2 (post-delivery short reply) is explicit design via code review:
  - _has_delivered_material() gate (chat.py:175-198)
  - _GUIDE_MESSAGE constant (chat.py:22-24)
  - FRONTEND_SYSTEM_PROMPT_TEMPLATE enforces workflow (agent.py:133-135)
- Issue #3 logger.exception already present in chat.py:262-276, needs logging config verification
- Issue #1 remains open (FilesystemMiddleware path crossing)

Co-Authored-By: Claude <noreply@anthropic.com>
Nick Hollon (nick-hollon-lc) added a commit that referenced this pull request Jul 2, 2026
… clean state, not a self-assessment

The plan-adherence gate asked the agent to re-read task+plan and confirm coverage
(introspective). Full tb-2.1 trace analysis showed the #1 failure mode (48% of failing
tasks, 63/63 verifier-confirmed assertion failures) and the #1 flakiness driver (~18/28)
are the same: the agent finalizes a confident 'verified' summary that is wrong — often
because its self-check ran against a working copy it had mutated (false 'matches'). Change
the nudge to demand empirical re-verification: restore edited inputs to original, re-run
the solution from a clean state / reproduce the task's stated test steps, read the observed
output, and reconcile against every case and flag state.
Mason Daugherty (mdrxy) added a commit that referenced this pull request Aug 18, 2026
A flushed paste burst was applied by posting `PastedPaths`/`PastedText` to
the owner, so the payload landed on a later event-loop turn. Textual appends
a posted message to the tail of the widget's FIFO queue, behind any key the
terminal already delivered, so the next keystroke was inserted ahead of the
paste: typing `y` as a burst broke produced `y[Pasted text #1]`. A paste split
across a slow terminal read boundary came out scrambled.

Route every payload through `ChatInput.apply_paste_payload` instead, called
synchronously from the burst flush, the bracketed-paste handler, and
`handle_external_paste` (which already applied its payloads this way). The
payload is in the document before the flush returns, so handling the current
key afterwards orders it after the paste.

The deferred-space gate existed to work around the posted application for one
key, holding keystrokes and replaying them as synthetic events. Synchronous
dispatch makes it unnecessary, so drop it along with the `DeferredSpace`
message, its watchdog, and the six fields it tracked. A replayed key never
bubbled to `ChatInput` and never reached binding resolution, so removing the
gate also stops `tab`, `enter`, and `ctrl+c` being swallowed behind a held
space.

Also clear `_burst_payload_keeps_leading_slash` when the buffer it describes
is discarded; a stale flag spent one mode re-detection on a later burst.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant