调试与测试建议
1) 日志与事件观测
Agently 内部事件流经 EventCenter,常用调试开关:
python
agent.settings.set("runtime.show_model_logs", True)
agent.settings.set("runtime.show_tool_logs", True)
agent.settings.set("runtime.show_trigger_flow_logs", True)2) 插件链路自检
建议按顺序逐步替换插件,减少定位难度:
- 先替换 PromptGenerator
- 再替换 ResponseParser
- 最后替换 ModelRequester
3) ResponseParser 的死锁/阻塞规避
- 避免在流式未结束时调用
get_text()/async_get_text() - 保证
done事件一定会发出,避免生成器悬挂
4) 结构化输出失败排查
- 确认 PromptGenerator 的输出 schema 是否真实可执行
- 在 ResponseParser 中对原始输出做记录(log 原始数据)
- 尝试关闭 streaming parse 验证解析器逻辑
5) Session 与扩展联动
当你使用 SessionExtension 时,set_chat_history/add_chat_history 会被代理到 Session。 若你自定义 Session 插件,需要保证:
full_chat_history/current_chat_history/memo的基本字段存在resize与append_message行为一致
6) 最小化测试模板
python
from agently import Agently
agent = Agently.create_agent()
# 1) 单次文本
print(agent.input("hello").get_text())
# 2) 流式
for event, content in agent.input("stream").get_generator(type="specific"):
if event == "delta":
print(content, end="", flush=True)7) 失败兜底策略
- 插件抛错时,允许返回空结构,但必须保持类型正确
- 对复杂解析失败,可回退到
text_result以保底