conductor-oss / conductor-oss/python-sdk

Runtime does not start workers for tools declared on a `planner=` agent

Đang mở Phù hợp với người mới
#478 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Python
Star
104
Fork
42
Merge trung bình
2 ngày 1 giờ
Pull request đã merge (30 ngày)
3

Mô tả

**In short:** an agent passed as `planner=` gets no workers started for its tools, so its tasks sit in the queue with nothing polling them and the example hangs forever.

**Files:** `src/conductor/ai/agents/runtime/runtime.py`; reproduced by `examples/agents/86_coding_agent.py`

## Symptom

```
$ python examples/agents/86_coding_agent.py
```

Hangs forever, no output after the worker banner. Output at 180s and 300s is byte-identical — no progress. Still reproduces on Orkes Conductor 5.5.0 against `main` at `8ff5f88f` (240s, no progress).

## Cause

Workers start only for the **parent** agent's `tools=`. Tools declared on the agent passed as `planner=` get none, so the planner's `read_file` tasks stay SCHEDULED with nothing polling them.

- `grep -n '\.planner' runtime.py` matches only comments — no code reads that slot when collecting worker tools.
- `_ensure_models_for_agent` walks `a.agents` recursively, so the old form was covered.
- The named slots `planner=` / `fallback=` replaced the older `agents=[planner, fallback]` form, and the traversal was never extended to them.

## Fix

Collect worker tools through `planner=` and `fallback=`, not only `agents=`.

## Verify

`python examples/agents/86_coding_agent.py` reaches the planner and stops hanging. Confirmed: supplying those four workers from a second process ends the hang (128s vs indefinite).

## Notes

**This does not make `86` pass.** It then fails with `No JSON plan found and no fallback agent configured`, a separate defect.

**Reproduce on Orkes Conductor 5.5.0, not OSS 3.32.0.** On OSS 3.32.0 the example no longer reaches this hang — it fails first, at 42s, with a separate defect that masks this one:

```
Plan compilation failed: Validation 0 has unsafe success_condition:
unexpected trailing input: '('passed') >= 0' at position 9 in: $.indexOf('passed') >= 0
```

**No other example is known to expose this.** `115_plan_execute_planner_context.py` and `adk/24_planner.py` both use `planner=` but cannot reach it, and both pass:

- `115`'s planner declares the same four tools as its parent harness, so the parent's `tools=` already starts those workers.
- `adk/24_planner.py` passes `BuiltInPlanner(...)`, which carries no tools at all.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Start in src/conductor/ai/agents/runtime/runtime.py, focusing on how worker tools are collected for an agent and its planner= and fallback= slots. Reproduce with examples/agents/86_coding_agent.py and verify that it reaches the planner instead of hanging; the later "No JSON plan found" failure is a separate defect.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
backend, distributed-systems
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
82/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.