q-star
ruvnet/q-star加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图:Q-Star Agent 概念图(来源:项目 README)
想象这样一个场景:你开发了一个 AI 助手,它不仅能回答问题,还能在与你的对话中自我学习、不断进化。每当你给出反馈,它就调整自己的策略,下次给出更好的回答。这不是科幻——这正是 Q-Star Agent 正在做的事。
Q-Star 的核心是 Q-Learning,这是一种经典的强化学习算法。简单来说:AI 在环境中采取行动,获得奖励或惩罚,然后更新自己的"决策表"(Q表),逐渐学会在每种状态下选择最优行动。
这个项目将 Q-Learning 与微软的 AutoGen 框架结合,创造出一种新型智能体:它不仅能进行多轮对话,还能通过用户反馈来调整自己的行为模式。
可以把 Q-Learning 想象成训练一只小狗:
Q-Star Agent 正是这样工作的,只不过它学习的"奖励"来自人类用户的反馈。
| 组件 | 职责 |
|---|---|
QLearningAgent 类 | Q表维护、动作选择、策略更新 |
UserProxyAgent | 用户交互入口,执行代码 |
AssistantAgent (Coder) | 代码生成与执行 |
AssistantAgent (Critic) | 响应质量评估 |
GroupChatManager | 多智能体对话协调 |
用户输入 → Q-Learning选择动作 → AutoGen执行 → 用户/Critic反馈
↑ ↓
└──────────── Q表更新 ← 奖励量化 ← 反馈处理 ─────────────┘
class QLearningAgent:
def __init__(self, states, actions, learning_rate=0.1, discount_factor=0.95):
self.q_table = np.zeros((states, actions))
def choose_action(self, state, exploration_rate):
if random.uniform(0, 1) < exploration_rate:
return random.randint(0, self.actions - 1) # 探索
else:
return np.argmax(self.q_table[state, :]) # 利用
def learn(self, state, action, reward, next_state):
predict = self.q_table[state, action]
target = reward + self.discount_factor * np.max(self.q_table[next_state, :])
self.q_table[state, action] += self.learning_rate * (target - predict)
这套 Q-Learning 实现相当标准,但它的巧妙之处在于将动作选择与 AutoGen 的多智能体框架挂钩——探索率决定是否让 LLM 生成响应。
autogen==1.2.3
numpy>=1.18.5
仅两个依赖,AutoGen 1.2.3 是早期版本,当前已演进至 0.4.x 系列。
OAI_CONFIG_LIST.json,填入 OpenAI API Keypython q.py尽管规模不大,Q-Star Agent 代表了一种重要趋势:将强化学习的决策能力注入 LLM Agent 框架。传统 Agent 依赖固定的 Prompt 模板,而 Q-Learning 驱动的 Agent 可以通过交互数据持续优化行为策略。
这个方向在以下场景有潜力:
Q-Star Agent 是一个教育意义大于实用价值的项目。它清晰地展示了如何将 Q-Learning 与 AutoGen 结合,为多智能体系统添加自适应学习能力。代码量可控(约 200 行),适合作为"强化学习 + LLM Agent"入门的参考实现。
如果你想探索 AI Agent 的自我进化机制,这是一个不错的起点。
分析时间:2026-08-07 | Stars: 96 | License: MIT