refactor: 后端模块拆分 (types + session→agent) #77

Merged
ph merged 2 commits from refactor/types-split into master 2026-06-12 11:15:38 +00:00
Owner

改动

1. types.go 拆分(纯文件重组,零逻辑变更)

internal/types/types.go(526行)拆为 4 个领域文件:

  • tool_call.go — validate 变量 + ToolCall 结构体
  • assistant_part.go — AssistantPart 接口 + 3 个具体类型 + 序列化
  • user_part.go — UserPart 接口 + 3 个具体类型 + 序列化
  • message.go — Message 接口 + System/User/Assistant 消息 + 序列化 + ToOpenAI

2. CompactPrompt 迁移(职责归位)

Session.CompactPrompt() 从 session/session.go 移至 agent/compact_prompt.go,改为独立函数 buildCompactPrompt(messages []types.Message)。

该方法只在 agent/compact.go 被调用,本质是给 compaction LLM 构建 prompt 的逻辑,属于 agent 职责。

## 改动 ### 1. types.go 拆分(纯文件重组,零逻辑变更) internal/types/types.go(526行)拆为 4 个领域文件: - tool_call.go — validate 变量 + ToolCall 结构体 - assistant_part.go — AssistantPart 接口 + 3 个具体类型 + 序列化 - user_part.go — UserPart 接口 + 3 个具体类型 + 序列化 - message.go — Message 接口 + System/User/Assistant 消息 + 序列化 + ToOpenAI ### 2. CompactPrompt 迁移(职责归位) Session.CompactPrompt() 从 session/session.go 移至 agent/compact_prompt.go,改为独立函数 buildCompactPrompt(messages []types.Message)。 该方法只在 agent/compact.go 被调用,本质是给 compaction LLM 构建 prompt 的逻辑,属于 agent 职责。
ph added 2 commits 2026-06-12 11:07:53 +00:00
types.go (526 lines) contained ToolCall, AssistantPart, UserPart, and
Message types all in one file. Split into:

- tool_call.go: validate var + ToolCall struct
- assistant_part.go: AssistantPart interface + content/thinking/tool_calls parts
- user_part.go: UserPart interface + text/file_mention/system_reminder parts
- message.go: Message interface + System/User/Assistant messages + serialization

Pure file reorganization, no logic changes.
CompactPrompt builds a summarisation prompt from conversation messages,
used only by the compaction flow in agent/compact.go. It is presentation
logic for the LLM call, not core session functionality.

- Remove Session.CompactPrompt() and compactMaxUserChars from session
- Add agent/buildCompactPrompt() as a standalone function
- Update compact.go to call buildCompactPrompt(a.session.Messages)
ph merged commit 46dcc24ece into master 2026-06-12 11:15:38 +00:00
ph deleted branch refactor/types-split 2026-06-12 11:15:38 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ph/agentic!77
No description provided.