我正在我的论坛上配置 Discourse AI,并有一个 AI 机器人/代理正在通过 LiteLLM 和 Google Vertex AI 使用 Gemini 2.5 Flash。
机器人可以正常工作,但我遇到了作用域方面的问题。
例如,我的论坛是一个以商业为主题的社区。如果我向机器人提问:
“Uber 的所有者是谁?”
它会利用大语言模型(LLM)的通用知识来回答这个问题,尽管该问题与我的论坛毫无关系。
这带来了两个问题:
- 我希望机器人充当特定于论坛的知识助手,而不是通用的 Gemini/ChatGPT 接口。
- 我不希望用户能够随意提问并消耗我的 LLM 额度。
我理想中的工作流程是:
用户提出问题
↓
该问题是否与本论坛相关?
↓
否 → 礼貌拒绝
↓
是
↓
搜索论坛知识
↓
基于论坛内容生成回答
你有没有看过 Agents?也许“论坛研究员”或“论坛助手”Agent 会更合适,因为它们是专门为论坛优化的。或者你已经在用这些了?
嗯……那么,也许你可以创建一个自定义系统提示词的专属代理,使其不响应超出论坛范围的问题。
Ed_S
(Ed S)
5
如果我今天在 ask.discourse.com 上尝试这样做,会看到如下内容:
感谢提问!由于您是在 Discourse 支持频道提问,我将从语言模型如何驱动 Discourse 的 AI 功能这一角度来回答——但如果您实际上是想了解关于大语言模型(LLM)工作原理的一般性技术解释,请告诉我,我可以为您提供其他资源。
这里肯定有人知道这个拦截是怎么实现的。
Falco
(Falco)
6
你在测试中使用的“Creative”代理是我们的“无系统提示”代理,它只是将请求传递给底层的 LLM。
你需要创建一个新的代理,并为其编写一个系统提示,明确指定在何种情况下以及如何在你自己的论坛上回答问题。
正如 @Ed_S. 所提到的,我们在 ask.discourse.com 上正是这样做的。
尽管提示词可以影响代理的行为,但它们并不总是可靠的。我成功诱导 ask.discourse.com 上的代理回答了一些离题的问题。
Ed_S
(Ed S)
8
(这大概是那种100%严格执行反而弊大于利的情况之一。)
Falco
(Falco)
9
是的,在对话深入并建立上下文链后,你可以让对话持续进行。这对我们来说不是问题,因为我们自行托管模型,因此无需按 Token 付费。我们还会每天分析 Ask 中的所有对话,并可以封禁任何不良行为者。论坛审核流程保持不变。
如果你希望获得比系统提示词更强大的控制权,可以尝试以下方法:
工作流
我们的新工作流插件允许你对每条消息进行两次处理:首先由一个智能体评估是否应该回复该消息,然后由另一个智能体根据条件进行回复。
微调模型
最可靠的控制方式是部署一个经过训练、具备你所期望行为的模型。
使用 Discourse AI 可以轻松实现这一点,因为你可以为每个智能体选择特定的大语言模型(LLM)。