본문으로 건너뛰기

후보 확장

Candidate expansion은 initial search 이후 관련 tool을 추가합니다. 가장 중요한 확장은 producer discovery입니다. target이 required field를 소비한다면, graph는 그 field를 생산하는 tool을 포함할 수 있습니다.

이렇게 하면 LLM catalog는 작게 유지하면서도 plan synthesis가 required input을 채울 tool을 볼 수 있습니다.

Minimal Example

from graph_tool_call.graphify import expand_candidates_with_producers

expanded = expand_candidates_with_producers(
candidate_names=["cancelOrder"],
tools_by_name=tools_by_name,
max_producers_per_field=2,
max_hops=1,
)

cancelOrderorderNo를 요구하고 다른 tool이 orderNo를 produce한다면, target selection 또는 planning 전에 producer가 candidate list에 추가될 수 있습니다.

Expansion Sources

  • deterministic IO contract edge
  • OpenAPI link
  • manual edge
  • promoted run-observed trace edge
  • high-confidence semantic link

Inputs

Parameter목적
candidate_namesinitial retrieved target
tools_by_name이름으로 indexing된 tool metadata
max_producers_per_fieldmissing required field마다 추가할 producer 상한
max_hopsproducer chain을 따라갈 깊이
action_priorityproducer-like action ordering 옵션

Helper는 required kind=data consume field만 확장합니다. context, auth, paging, search filter는 execution catalog를 폭발시키면 안 됩니다.

Output

반환값은 ordered tool name list입니다. 원래 candidate가 먼저 남고 그 뒤에 producer candidate가 붙습니다.

[
"cancelOrder",
"searchOrders",
"getOrderDetail",
]

Safety Policy

Expansion은 LLM catalog를 과하게 늘리지 않으면서 planning을 도와야 합니다. low-confidence structural edge는 graph inspection에는 남기되, execution-oriented candidate에는 strong evidence를 우선합니다.

권장 기본값:

SettingGuidance
max_hops일반 retrieval은 1, target-specific planning에서만 더 크게
max_producers_per_field1에서 3
Manual edgedeterministic contract evidence로 표현하기 어려울 때만
Trace edge단일 observed run이 아니라 promoted 상태만

Failure Modes

증상가능한 원인조치
expanded tool이 너무 많음broad required field 또는 높은 max_hopshop/producer limit 낮추기
producer가 추가되지 않음produces metadata 부족IO contract 확인
wrong producer가 추가됨weak semantic tagsemantic build 또는 alias 보강
LLM에 helper tool이 노출됨source catalog에 non-user tool 포함collection build 단계에서 filter

Validation

Candidate expansion은 list size만 보지 말고 plan outcome으로 검증합니다. 좋은 expansion은 평균 candidate count를 크게 늘리지 않으면서 unsatisfied_field failure를 줄입니다.

추적할 값:

  • average candidate count
  • max candidate count
  • plan hit rate
  • unsatisfied_field count
  • selector ambiguity count

관련 문서