MCPcopy Create free account
hub / github.com/OperationT00/T-Code / Agent

Class Agent

src/main/java/com/tcode/agent/Agent.java:44–1000  ·  view source on GitHub ↗

Agent 核心类 - 实现 ReAct 循环

Source from the content-addressed store, hash-verified

42 * Agent 核心类 - 实现 ReAct 循环
43 */
44public class Agent {
45 private static final Logger log = LoggerFactory.getLogger(Agent.class);
46 private LlmClient llmClient;
47 private final ToolRegistry toolRegistry;
48 private final List<LlmClient.Message> conversationHistory;
49 private final MemoryManager memoryManager;
50 private final ConversationHistoryCompactor historyCompactor;
51 private Supplier<String> externalContextSupplier = () -> "";
52 private SkillRegistry skillRegistry;
53 private SkillContextBuffer skillContextBuffer;
54 private Renderer renderer;
55 private Supplier<Boolean> hitlEnabledSupplier = () -> false;
56 private final PromptAssembler promptAssembler = PromptAssembler.createDefault();
57
58 public Agent(LlmClient llmClient) {
59 this(llmClient, new ToolRegistry());
60 }
61
62 public Agent(LlmClient llmClient, ToolRegistry toolRegistry) {
63 this.llmClient = llmClient;
64 this.toolRegistry = toolRegistry;
65 this.conversationHistory = new ArrayList<>();
66 this.memoryManager = new MemoryManager(llmClient);
67 this.historyCompactor = new ConversationHistoryCompactor(llmClient);
68 this.toolRegistry.setContextProfile(memoryManager.getContextProfile());
69 this.memoryManager.setProjectPath(this.toolRegistry.getProjectPath());
70 this.toolRegistry.setScopedMemorySaver(memoryManager::storeFact);
71 conversationHistory.add(LlmClient.Message.system(buildSystemPrompt("")));
72 }
73
74 public void setLlmClient(LlmClient llmClient) {
75 this.llmClient = llmClient;
76 this.memoryManager.setLlmClient(llmClient);
77 this.historyCompactor.setLlmClient(llmClient);
78 this.toolRegistry.setContextProfile(memoryManager.getContextProfile());
79 }
80
81 public void setExternalContextSupplier(Supplier<String> externalContextSupplier) {
82 this.externalContextSupplier = externalContextSupplier == null ? () -> "" : externalContextSupplier;
83 }
84
85 public void setSkillRegistry(SkillRegistry skillRegistry) {
86 this.skillRegistry = skillRegistry;
87 }
88
89 public void setSkillContextBuffer(SkillContextBuffer skillContextBuffer) {
90 this.skillContextBuffer = skillContextBuffer;
91 }
92
93 public void setRenderer(Renderer renderer) {
94 this.renderer = renderer;
95 }
96
97 /**
98 * 注入 HITL 启用状态的快照源,用于状态栏 / StatusInfo 显示。
99 * Main 启动后用 {@code reactAgent.setHitlEnabledSupplier(hitlHandler::isEnabled)} 接进来。
100 */
101 public void setHitlEnabledSupplier(Supplier<Boolean> supplier) {

Callers

nothing calls this directly

Calls 1

createDefaultMethod · 0.95

Tested by

no test coverage detected