ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s

This commit is contained in:
2026-08-20 13:12:50 +00:00
commit b119135836
10275 changed files with 3284984 additions and 0 deletions
@@ -0,0 +1 @@
"""Example application package."""
@@ -0,0 +1,14 @@
"""Runtime timeout configuration."""
DEFAULT_TIMEOUT = 30
def resolve_timeout(explicit=None, env=None):
"""Return a positive timeout using explicit > environment > default."""
env = env or {}
raw = env.get("AGENT_TIMEOUT", explicit)
try:
value = int(raw)
except (TypeError, ValueError):
return DEFAULT_TIMEOUT
return value if value > 0 else DEFAULT_TIMEOUT
@@ -0,0 +1,7 @@
"""Worker construction kept separate from configuration parsing."""
from app.config import resolve_timeout
def worker_options(timeout=None, env=None):
return {"timeout": resolve_timeout(timeout, env), "retries": 2}
@@ -0,0 +1,20 @@
import unittest
from app.config import DEFAULT_TIMEOUT, resolve_timeout
class ResolveTimeoutTests(unittest.TestCase):
def test_explicit_value_wins_over_environment(self):
self.assertEqual(resolve_timeout(12, {"AGENT_TIMEOUT": "45"}), 12)
def test_environment_is_used_without_explicit_value(self):
self.assertEqual(resolve_timeout(None, {"AGENT_TIMEOUT": "45"}), 45)
def test_invalid_values_use_default(self):
self.assertEqual(resolve_timeout("nope", {}), DEFAULT_TIMEOUT)
self.assertEqual(resolve_timeout(0, {}), DEFAULT_TIMEOUT)
self.assertEqual(resolve_timeout(-2, {}), DEFAULT_TIMEOUT)
if __name__ == "__main__":
unittest.main()
@@ -0,0 +1,5 @@
{
"category": "localized",
"instruction": "Fix the timeout configuration bug exposed by the tests. The public resolve_timeout API must remain unchanged. Explicit arguments should take precedence over AGENT_TIMEOUT, and invalid or non-positive values should fall back to the default.",
"test_command": ["python", "-m", "unittest", "discover", "-s", "tests", "-v"]
}