Repository navigation
src_core_agent
globalpocket edited this page Apr 11, 2026
·
1 revision
CoderAgent およびその周辺クラスは、Brownie の推論の核心である Planner-Executor パターン を Pydantic AI を用いて実装します。
- 意思決定 (Planner): 状況に応じた環境操作ツールの選択、および実装指示書(Strict Blueprint)の作成。
- 実装実行 (Executor): Planner の指示に基づいた、副作用のない純粋なコード生成。
- 多重防御: 強力な型定義(Pydantic)による JSON 通信の強制と、ツール呼出し権限の分離。
エージェントの実行に必要なコンテキスト(依存関係)を保持します。
-
保持属性:
config,sandbox,gh_client,mcp_manager,workspace_context,current_task_id,status。
Planner から Executor へ渡される唯一の通信フォーマット。
-
target_files(List[BlueprintFile]): 変更対象ファイル。 -
logic_constraints(List[str]): 実装上の制約。 -
prohibited_actions(List[str]): 禁止事項。
外部(Orchestrator)からエージェント機能を呼び出すためのインターフェース。
初期化引数:
-
config,sandbox,gh_client,mcp_manager,workspace_context。
公開メソッド:
-
run(task_id, repo_name, issue_number, **kwargs) -> Union[bool, str](async)-
振る舞い:
- 実行環境(
AgentDeps)を初期化。 -
mcp_managerから全 MCP サーバーのツールを動的に取得し、LangChainToolsetとして Planner にバインド。 -
planner_agent.runを実行。 -
HITL 検知: ステータスが
waiting_for_clarificationの場合は"WAITING"を返す。 -
完了検知: ステータスが
finishedの場合はTrueを返す。
- 実行環境(
-
振る舞い:
-
post_comment(body)- GitHub に推論結果や進捗を投稿。
-
ask_user(question)- 承認や質問が必要な際、ステータスを
waiting_for_clarificationに変更し、ワークフローを一時停止(Interrupt)させるトリガー。
- 承認や質問が必要な際、ステータスを
-
delegate_to_executor(blueprint)- Planner が作成した
Blueprintを Executor に渡し、コード実装案を取得する。
- Planner が作成した
-
外部依存:
-
pydantic,pydantic_ai pydantic_ai.ext.langchain.LangChainToolsetsrc.workspace.sandbox.SandboxManagersrc.workspace.context.WorkspaceContextsrc.version.get_footer
-