Files
picoclaw/docs/architecture/agent-refactor/agent-rename-plan.md
T
sky5454 329e68e017 refactor(agent): Agent Looper refactor phase2, restructure pipeline and rename loop files to agent (#2585)
* refactor(agent): introduce interfaces for MessageBus and ChannelManager

Phase 2 of loop.go refactor — dependency inversion using adapter pattern.

- Add interfaces.MessageBus and interfaces.ChannelManager interfaces
- Create adapters/messagebus.go wrapping *bus.MessageBus
- Create adapters/channelmanager.go wrapping *channels.Manager
- Update AgentLoop to use interfaces instead of concrete types
- Update registerSharedTools to accept interfaces.MessageBus

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(agent): restructure pipeline and rename loop files

Pipeline refactoring:
- Split pipeline.go (1400 lines) into focused files:
  - pipeline_setup.go (~115 lines): SetupTurn method
  - pipeline_llm.go (~519 lines): CallLLM method
  - pipeline_execute.go (~693 lines): ExecuteTools method
  - pipeline_finalize.go (~78 lines): Finalize method
- Pipeline struct and NewPipeline remain in pipeline.go (~39 lines)

Agent file renaming:
- Rename loop_*.go to agent_*.go for consistent naming:
  - loop.go -> agent.go, loop_message.go -> agent_message.go, etc.
- Merge turn.go + turn_exec.go into turn_state.go
- Rename loop_turn.go -> turn_coord.go

Documentation:
- Update docs/pipeline-restructuring-plan.md
- Add docs/agent-rename-plan.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(agent): code format  fixed

* refactor(agent): code test file added/renamed

* docs(agent): update agent refactor docs

* fix(agent): fix agent hardAbortX

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-21 10:55:50 +08:00

4.8 KiB

Agent File Rename Plan

Goal

Unify pkg/agent/ package file naming to resolve the loop_* prefix naming confusion and unclear responsibility boundaries.

Change Overview

File Renames (12 files)

Original New Description
loop.go agent.go AgentLoop main body + lifecycle methods
loop_message.go agent_message.go Message handling and routing
loop_outbound.go agent_outbound.go Response publishing
loop_event.go agent_event.go Event system
loop_command.go agent_command.go Command processing
loop_steering.go agent_steering.go Steering message handling
loop_transcribe.go agent_transcribe.go Audio transcription
loop_media.go agent_media.go Media processing
loop_mcp.go agent_mcp.go MCP initialization
loop_utils.go agent_utils.go Utility functions
loop_inject.go agent_inject.go Dependency injection
loop_turn.go turn_coord.go Turn coordinator

File Merges (2 → 1)

Original New Description
turn.go + turn_exec.go turn_state.go Turn-related type definitions

Final File Structure

pkg/agent/
├── agent.go              # AgentLoop + Run/Stop/Close lifecycle
├── agent_message.go     # Message processing
├── agent_outbound.go    # Response publishing
├── agent_event.go       # Event system
├── agent_command.go     # Command processing
├── agent_steering.go    # Steering
├── agent_transcribe.go  # Transcription
├── agent_media.go       # Media processing
├── agent_mcp.go         # MCP
├── agent_utils.go       # Utility functions
├── agent_inject.go      # Dependency injection
├── turn_coord.go       # runTurn + coordinator
├── turn_state.go       # turnState + turnExecution + Control + ToolControl + LLMPhase
├── pipeline.go         # Pipeline struct + NewPipeline
├── pipeline_setup.go
├── pipeline_llm.go
├── pipeline_execute.go
└── pipeline_finalize.go

Naming Convention

Prefix Content Example
agent_* AgentLoop method files agent_message.go, agent_event.go
turn_* Turn lifecycle related turn_coord.go, turn_state.go
pipeline_* Pipeline methods pipeline_setup.go, pipeline_llm.go
context_* Context management context_manager.go, context_legacy.go
hook_* Hook system hook_process.go, hook_mount.go

Architecture Layers

┌─────────────────────────────────────────────────────────┐
│                    AgentLoop (agent.go)                │
│  - Message loop Run/Stop/Close                        │
│  - Dependency injection (agent_inject.go)             │
│  - Message routing (agent_message.go)                 │
│  - Response publishing (agent_outbound.go)            │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│              Turn Coordinator (turn_coord.go)          │
│  - runTurn(): main coordinator                         │
│  - abortTurn(): abort                                 │
│  - askSideQuestion(): side question                   │
│  - selectCandidates(): model selection                │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                 Pipeline (pipeline_*.go)               │
│  - SetupTurn(): initialization                        │
│  - CallLLM(): LLM call                               │
│  - ExecuteTools(): tool execution                     │
│  - Finalize(): finalization                          │
└─────────────────────────────────────────────────────────┘

Verification Results

  • go build ./pkg/agent/... - Pass
  • go vet ./pkg/agent/... - No warnings
  • go test ./pkg/agent/... -skip "TestSeahorse|TestGlobalSkillFileContentChange" - Pass